Remplacer if en Batch
Studio_Batch
Messages postés
2
Statut
Membre
-
barnabe0057 Messages postés 14329 Date d'inscription Statut Contributeur Dernière intervention -
barnabe0057 Messages postés 14329 Date d'inscription Statut Contributeur Dernière intervention -
Salut tout le monde,
Je souhaiterai faire un programme qui rangerait les fichiers entreposés dans Téléchargemement Dans leur dossier respectif .
Seulement si c'est un .png , son répertoire sera
Pour l'instant mon programme est :
Je voudrais savoir si il existe une commande qui rechercherait le bon dossier du fichier traité sans passer par if .
Merci d'avance
Je souhaiterai faire un programme qui rangerait les fichiers entreposés dans Téléchargemement Dans leur dossier respectif .
Seulement si c'est un .png , son répertoire sera
C:\Users\%USERNAME%\Downloads\Images\pnget les .msi dans
C:\Users\%USERNAME%\Downloads\Executables_et_archives\msi.
Pour l'instant mon programme est :
for %%f in ( C:\Users\%USERNAME%\Downloads\*.* ) do ( call :process )
pause > nul
:process
if %~1==*.png ( move %~1 C:\Users\%USERNAME%\Downloads\Images\png ) echo Transfert effectué avec succes pour %~1
if %~1==*.jpg ( move %~1 C:\Users\%USERNAME%\Downloads\Images\jpg ) echo Transfert effectué avec succes pour %~1
if %~1==*.ico ( move %~1 C:\Users\%USERNAME%\Downloads\Images\ico ) echo Transfert effectué avec succes pour %~1
if %~1==*.odp ( move %~1 C:\Users\%USERNAME%\Downloads\Documents\odp ) echo Transfert effectué avec succes pour %~1
REM Et ainsi de suite ....
goto :eof
Je voudrais savoir si il existe une commande qui rechercherait le bon dossier du fichier traité sans passer par if .
Merci d'avance
1 réponse
-
Bonjour,
Pour l'instant ton script ne fonctionne pas car tu appelles une fonction paramétrée sans lui passer de paramètre.
Ton code contient trop de IF, il faut l'optimiser :
setlocal enableextensions
cd /d %USERPROFILE%\Downloads
for %%J in (png jpg ico) do (call :process Images "%%~xJ" "%%~J")
for %%H in (odp xls ppt) do (call :process Documents "%%~xH" "%%~H")
for %%G in (msi exe zip rar) do (call :process Executables_et_archives "%%~xG" "%%~G")
pause > nul
:process
if not exist "%CD%\%1\%~2" (mkdir "%CD%\%1\%~2")
move "%CD%\%~3" "%CD%\%1\%~2" && echo Transfert effectué avec succes pour %~3
goto :eof
“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”