2017-08-10 111 views
0

我在批處理文件中很新,並且對我的代碼有一些麻煩。我曾在本頁的其他問題中進行過調查,但仍無法完成我的任務。我在同一個目錄中有多個壓縮文件夾,每個文件夾內有一個.html文件。我需要解壓縮這些文件夾,並使用該文件夾的名稱重命名.html。使用批處理解壓和重命名文件(Windows)

例子:

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

結果:

file FolderA.html 
file FolderB.html 

這是我的代碼:

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

我可以** **不明白'ren'命令如何給'FolderA.zip與文件xyz.html'結果呢?你能解釋更多嗎? – SteveFest

回答

0
  • 的用於遍歷HTML文件循環變量是%%f%%I
  • 您還需要delayed expansion在(代碼塊)中設置和使用 變量。
  • 修改器~na將返回名稱和屬性?

@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