Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

script pour copier des fichiers....

7 réponses
Avatar
B_o_B
Bonsoir,

J'ai une grande arborescence de dossiers, contenant eux-même des sous
dossiers et des fichiers de type jpg, tiff et png.

Je cherche un script qui me permettrait de selectionner par exemple tous les
fichiers jpg se trouvant dans tous les dossiers, sous dossiers et sous sous
dossier et me les copier sur un autre emplacement dans un dossier unique.

Auriez-vous cela sous la main ?


Merci d'avance

7 réponses

Avatar
MC
Bonjour !

Un petit batch le permetV=. Voici un exemple :

@echo off
for /F "usebackq" %%i in (`xcopy C:dev*.jpg c:ttt /S /L`) do
call :TRAITEMENT %%i
goto :EOF

:TRAITEMENT
copy "%*" C:ttt
goto :EOF

--
@-salutations

Michel Claveau
Avatar
B_o_B
Bonjour,

Merci pour votre aide,

J'ai copié le code dans un fichier bat et modifié les chemins pour un faire
un test sur ma machine et ca bloque si la 1ere ligne.

C:>runcopy
La syntaxe de la commande est incorrecte.

C:>FOR /F "usebackq" %i IN (`xcopy E:TEST*.tif E:TEST2 /S /L`) DO






"MC" a écrit dans le message de news:

Bonjour !

Un petit batch le permetV=. Voici un exemple :

@echo off
for /F "usebackq" %%i in (`xcopy C:dev*.jpg c:ttt /S /L`) do call
:TRAITEMENT %%i
goto :EOF

:TRAITEMENT
copy "%*" C:ttt
goto :EOF

--
@-salutations

Michel Claveau




Avatar
Jacques Barathon [MS]
"B_o_B" wrote in message
news:
Bonjour,

Merci pour votre aide,

J'ai copié le code dans un fichier bat et modifié les chemins pour un
faire un test sur ma machine et ca bloque si la 1ere ligne.

C:>runcopy
La syntaxe de la commande est incorrecte.

C:>FOR /F "usebackq" %i IN (`xcopy E:TEST*.tif E:TEST2 /S /L`) DO


Dans un fichier batch il faut doubler les % dans les noms de variables: %i
devient %%i.

Sinon, si vous avez installé Windows PowerShell 1.0:

dir test *.tif -rec | foreach {copy $_ test2}

Jacques

Avatar
MC
Bonsoir !

Dans un batch il faut doubler les % dans les noms de variables


Plus exactement, il faut doubler pour un FOR utilisé dans un batch.


à noter que certains commerciaux de MS voudraient aussi doubler leur %

--
@-salutations

Michel Claveau

Avatar
B_o_B
Bonjour ,

Merci pour votre aide,

Il s'avère que cela ne fonctionne pas et je ne comprends pas.

Pour remettre dans le contexte :
J'ai créé à la racine de C: un fichier runcopy.bat dans lequel j'ai copié le
code suivant :

FOR /F "usebackq" %%i IN (`xcopy E:TEST*.tif E:TEST2 /S /L`) DO

call :TRAITEMENT %%i
goto :EOF

:TRAITEMENT
copy "%*" C:test2
goto :EOF

puis j'execute le runcopy.bat
et la j'obtiens le résultat suivant :

C:>runcopy
La syntaxe de la commande est incorrecte.

C:>FOR /F "usebackq" %i IN (`xcopy E:TEST*.tif E:TEST2 /S /L`) DO

C:>

Pourquoi cela ne passe pas ?
Je suis sous XP SP2, est-ce le prob ?

Bonne journée


"MC" a écrit dans le message de news:

Bonsoir !

Dans un batch il faut doubler les % dans les noms de variables


Plus exactement, il faut doubler pour un FOR utilisé dans un batch.


à noter que certains commerciaux de MS voudraient aussi doubler leur %

--
@-salutations

Michel Claveau





Avatar
Gilles LAURENT
"B_o_B" a écrit dans le message de
news:
| Bonsoir,

Bonjour,

[...]
| Je cherche un script qui me permettrait de selectionner par exemple
| tous les fichiers jpg se trouvant dans tous les dossiers, sous
| dossiers et sous sous dossier et me les copier sur un autre
| emplacement dans un dossier unique.

En complément des réponses précédentes :

+++ Usage
CopyTo <source> <target>

+++ Exemple
>CopyTo d:test*.tif d:tif

--- Coupez ici : CopyTo.cmd ---

@echo off
for /f "tokens=*" %%i in ('dir/s/b %1') do (
echo Copy [%%i] To [%2]
copy /v /y "%%i" %2
)

--- Coupez ici : CopyTo.cmd ---

--
Gilles LAURENT
http://glsft.free.fr
Avatar
jackr13
Bonjour,

A priori votre système ne comprend pas la syntaxe de la première ligne de
votre fichier bat la coupure après le DO n'est pas correct. Reprenez cette
ligne en y incorporant la suite de la commande call :TRAITEMENT %%i sans
saut à la ligne.

A+

jackr13

"B_o_B" a écrit dans le message de news:
Om$
Bonjour ,

Merci pour votre aide,

Il s'avère que cela ne fonctionne pas et je ne comprends pas.

Pour remettre dans le contexte :
J'ai créé à la racine de C: un fichier runcopy.bat dans lequel j'ai copié
le code suivant :

FOR /F "usebackq" %%i IN (`xcopy E:TEST*.tif E:TEST2 /S /L`) DO

call :TRAITEMENT %%i
goto :EOF

:TRAITEMENT
copy "%*" C:test2
goto :EOF

puis j'execute le runcopy.bat
et la j'obtiens le résultat suivant :

C:>runcopy
La syntaxe de la commande est incorrecte.

C:>FOR /F "usebackq" %i IN (`xcopy E:TEST*.tif E:TEST2 /S /L`) DO

C:>

Pourquoi cela ne passe pas ?
Je suis sous XP SP2, est-ce le prob ?

Bonne journée


"MC" a écrit dans le message de news:

Bonsoir !

Dans un batch il faut doubler les % dans les noms de variables


Plus exactement, il faut doubler pour un FOR utilisé dans un batch.


à noter que certains commerciaux de MS voudraient aussi doubler leur %

--
@-salutations

Michel Claveau