2017-08-10 1 views
0

Je suis très nouveau dans les fichiers batch et j'ai quelques problèmes avec mon code. J'avais enquêté sur d'autres questions de cette page mais je n'arrive toujours pas à faire ma tâche. J'ai plusieurs dossiers zippés dans le même répertoire avec un fichier .html à l'intérieur de chacun. Je dois décompresser les dossiers et renommer le .html avec le nom du dossier.Décompressez et renommez les fichiers avec un lot (Windows)

Exemple:

FolderA.zip with file xyz.html 
FolderB.zip with file abc.html 

Résultat:

file FolderA.html 
file FolderB.html 

Voici mon code:

cd C:\Users\MyUser\Desktop 
for /F %%I IN ('dir /b /s *.zip *.rar') DO (
set nombre2=%%~naI 
"C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I" -aoa 
for /F "delims=" %%f in ('dir /a-d /b *.html') do (
ren %%I %nombre2%.html 
) 
) 
DEL *.zip 
+0

je ne peux pas ** ** comprendre comment la commande '' ren' peut donner FolderA.zip avec le fichier xyz.html' résultat? Pouvez-vous expliquer plus? – SteveFest

Répondre

0
  • La pour la variable de boucle itérer les fichiers html est %%f pas %%I.
  • Vous devez également définir le paramètre delayed expansion et utiliser une variable dans un (bloc de code).
  • Les modfiers ~na renverront le nom et les attributs?

@Echo off 
cd C:\Users\MyUser\Desktop 
for /F %%I IN ('dir /b /s *.zip *.rar') DO (
    "C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I" -aoa 
    for /F "delims=" %%f in ('dir /a-d /b *.html') do (
     ren ""%%f" "%%~nI.html" 
    ) 
) 
DEL *.zip