Page 1 sur 1

[RESOLU] problème inconnu sur mon script

Posté : 20 juin 2011 17:19
par iliko
Bonjour à tous,

Je souhaiterais copier tous les fichiers photos (qui sont donc en *.jpg) qui sont situés dans des sous-répertoires d'un répertoire vers un dossier (mettons C:\script-photos-tmp\) mais je m'embrouille...
J'ai fait ce script pour l'instant :

set /p rep= quel est le premier repertoire des photos?
mkdir C:\script-photos-tmp\
FOR /D %F in (%rep%\*) DO copy "%F\*.*" "C:\script-photos-tmp\"
pause

Mais celui ne fonctionne pas, en effet il se ferme à l'avant dernière ligne et je ne comprends pas pourquoi alors que quand je lance cette ligne en CMD normal en remplaçant %rep% par le chemin souhaité cela fonctionne !
Auriez-vous des idés / solutions ?

Merci d'avance :)

Re: problème inconnu sur mon script

Posté : 20 juin 2011 18:25
par WIN32-[GG]
Bonjour et binvenue :)

Je crois avoir la solution:

Code : Tout sélectionner

@echo off
set /p rep=Quel est le premier repertoir des photos? :
cd /D %rep%
if not %ERRORLEVEL%==0 (
echo Le repertoire %rep% n'existe pas
pause>nul&exit
)
md C:\script-photos-tmp\
for /f %%a in ('dir /S /B *.jpg') do copy /N /Y "%%a" "C:\script-photos-tmp" >nul &echo Copie de %%a
echo Copie terminee
pause

Re: problème inconnu sur mon script

Posté : 20 juin 2011 18:40
par iliko
Merci beaucoup à toi WIN32-[GG], je n'aurais pas réussi sans ton aide ;) !
Par contre je n'est pas tout compris dans le batch ( je suis un débutant dans le domaine :oops: ), a quoi sert le "pause>nul&exit" ? merci :)

Et je viens de remarquer autre chose : dans mes sous-répertoires, il y a des fichiers qui ont le même nom, aurais-tu une idée pour les renommer aléatoirement avant de les mettre dans le dossier ?
Merci encore pour ton aide ;)

Re: problème inconnu sur mon script

Posté : 20 juin 2011 18:46
par WIN32-[GG]
Je t'en prie ;) et puis, on ne reste pas débutant très longtemps

Le pause>nul&exit on peut aussi l'écrire:

pause>nul
exit

Le & servant à exécuter plusieurs commandes sur une même ligne,
"pause" affiche "Appuyez sur une touche pour continuer..." le >nul redirige ce texte vers le fichier nul (qui est automatiquement effacé ou quelquechose comme ça, d'ailleurs tu ne peux pas creer un fichier qui s'appelle "nul")
La console reste vide
Le exit est, je pense assez explicite... :lol:

Les renomer aléatoirement...

Laisse moi deux minutes.

Re: problème inconnu sur mon script

Posté : 20 juin 2011 18:53
par iliko
Merci beaucoup pour les informations , j'utiliserais désormais pause>nul au lieu de pause simple :D

C'est sympa à toi de m'aider comme ça :) je vais essayer de trouver de mon côté mais je doute du résultat ^^

Re: problème inconnu sur mon script

Posté : 20 juin 2011 19:24
par WIN32-[GG]
Bon voilà, 8-) j'ai fait de mon mieux mais je suis pas sur à 100 %, tu pourais vérifier si cela correspond à tes attentes

Code : Tout sélectionner

@echo off
set /p rep=Quel est le premier repertoir des photos? :
cd /D %rep%
if not %ERRORLEVEL%==0 (
echo Le repertoire %rep% n'existe pas
pause>nul&exit
)
md C:\script-photos-tmp\
cd /D C:\script-photos-tmp\

for /f %%a in ('dir "%rep%\*.jpg" /S /B') do (
if exist "%CD%\%%~na.jpg" (
    ren "%CD%\%%~na.jpg" "%RANDOM%-%%~na.jpg
)
copy /N "%%a" "C:\script-photos-tmp" >nul 
echo Copie de %%a
)
echo Copie terminee
pause

Re: problème inconnu sur mon script

Posté : 20 juin 2011 21:45
par iliko
C'est parfait WIN32-[GG] :D
Merci infiniment pour ton aide :!:

Re: problème inconnu sur mon script

Posté : 20 juin 2011 21:52
par WIN32-[GG]
Je t'en prie ;)

Oh! Par contre: n'oubli pas de mettre "[Résolu]" dans le sujet ;)

Bonne soirée, moi je garde le batch dans mes archives 8-)

Re: [RESOLU] problème inconnu sur mon script

Posté : 20 juin 2011 22:13
par iliko
;)
C'est fait !
bonne soirée à toi aussi ! :)