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.
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
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
"B_o_B" <B_o_B@Nospam> a écrit dans le message de
news:e4pgNcXRHHA.4188@TK2MSFTNGP06.phx.gbl
| 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
)
"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
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
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" <B_o_B@nospam> a écrit dans le message de news:
Om$YalqRHHA.412@TK2MSFTNGP02.phx.gbl...
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" <XX.XmcX@XX.XmclaveauX.com> a écrit dans le message de news:
mn.0d217d726020e05b.46195@XX.XmclaveauX.com...
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 %
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 %