Page 1 sur 2

[Resolu]Copie de fichier en un

Posté : 11 mars 2012 14:43
par spawn
Bonjour,

J'aimerai faire la copie de plusieurs fichier texte "5000 fichier" du même répertoire ayant une seul ligne dedans, dans un seul fichier texte

Merci de votre aide

Code : Tout sélectionner

@echo off

REM DECLARATION DE VARIABLE POUR PLUS DE FACILITER
set dossier=F:\xml 2012 modifier\teste\
set fichier texte=%userprofile%\Bureau\final.txt

for /r "%dossier%" %%i in (*.txt) do (
for /f "tokens=*" %%a in ('type "%%~fi"') do echo.%%a>>"%fichier texte%"
)
pause
exit

Re: Copie de fichier en un

Posté : 11 mars 2012 21:40
par Gorbinator
spawn a écrit :Bonjour,

J'aimerai faire la copie de plusieurs fichier texte "5000 fichier" du même répertoire ayant une seul ligne dedans, dans un seul fichier texte

Merci de votre aide
Est-ce que j'ai bien compris ton souhait :
tu cherches à compiler un ensemble de .txt en un seul ?
Si c'est ça je pense pouvoir aider... le temps que je retrouve les commandes. (il me semble qu'l faut utiliser FOR et COPY)

Re: Copie de fichier en un

Posté : 11 mars 2012 23:02
par spawn
Oui c'est bien sa, ils sont tous dans le même répertoire

Re: Copie de fichier en un

Posté : 12 mars 2012 19:32
par spawn
est ce que sa peut t'aider ?



for /r "dossier" %%i in (*) do (
for /f "tokens=*" %%a in ('type "%%~fi"') do echo.%%a>>"fichier texte"
)

Re: Copie de fichier en un

Posté : 12 mars 2012 21:45
par Gorbinator
Alors j'ai une réponse mais un peu particulière: mes fichiers txt sont tous de la forme 01.txt, 02.txt, .... N.txt
Donc en ayant ce type de fichiers dans un seul répertoire TEMP, je fais pour les obtenir:

Code : Tout sélectionner

FOR /R %%I IN (%%I.txt) DO (
    COPY %%I /V /-Y (*.txt) (\TEMP\*.txt)
    ECHO planche %%I copiee
    pause
)
ensuite il me reste à les mettre dans un seul .txt: j'ai mis le .bat qui suit dans le répertoire TEMP (mais il suffit de changer le répertoire), je sais pas bien pourquoi ça marche même quand je désactive la première boucle for:

Code : Tout sélectionner

for %%1 in (*.vdl) do (
    set var=!var!%%1+
    REM echo ------------------------------------
    REM echo         fichier %%1 ajouté
    REM echo ------------------------------------
    REM cls
    set VrCompt=-1
)

Code : Tout sélectionner

:boucle
set test2=!var:~%VrCompt%,1!
set /a VrCompt+=1
if not "%test2%"=="" goto boucle
set /a VrCompt-=1
set final=!var:~0,%VrCompt%!
@copy /b %final% concatenation.txt
pause
J'ai dû récupérer ce programme sur le net... mais je maîtrise pas tout, par exemple il y a un délais énorme au lancement. Mais ça marche ;)

Re: Copie de fichier en un

Posté : 12 mars 2012 22:50
par Gorbinator
J'ai trouvé plus simple:

Code : Tout sélectionner

for "C:\MonRep\" %%i in (*.txt) do for /f "delims=" %%j in ('type "%%i"') do echo %%j>> Concaténation.txt
ou alors
COPY montext1.txt + montexte2.txt montexte.txt
ça devrait être plus clair :)

Re: Copie de fichier en un

Posté : 13 mars 2012 19:05
par spawn
Merci je vais testé

Re: Copie de fichier en un

Posté : 13 mars 2012 19:36
par spawn
il me crée un fichier avec sa dedans

* Valeur de la ligne : for "F:\xml 2012 modifier\teste\" %i in (*.txt) do for /f "delims=" %j in ('type "%i"') do echo %j

Re: Copie de fichier en un

Posté : 13 mars 2012 20:28
par Gorbinator
Je pensais qu'il suffisait d'ajouter :

Code : Tout sélectionner

@Echo Off
au début de ton .bat, mais je sèche.

Re: Copie de fichier en un

Posté : 13 mars 2012 20:37
par spawn
J'ai sa et pareil

Code : Tout sélectionner

@Echo Off
for "F:\xml 2012 modifier\teste\" %%i in (*.txt) do for /f "delims=" %%j in ('type "%%i"') do echo %%j>> Concatenation.txt