Menu

Remplacer if en Batch

Studio_Batch 2 Messages postés jeudi 4 janvier 2018Date d'inscription 14 janvier 2018 Dernière intervention - 14 janv. 2018 à 15:19 - Dernière réponse : barnabe0057 11915 Messages postés lundi 2 mars 2009Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention
- 14 janv. 2018 à 15:23
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
C:\Users\%USERNAME%\Downloads\Images\png
et 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
Afficher la suite 

1 réponse

Répondre au sujet
barnabe0057 11915 Messages postés lundi 2 mars 2009Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention - Modifié par barnabe0057 le 14/01/2018 à 16:09
0
Utile
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.”
Commenter la réponse de barnabe0057