特定のディレクトリ内のすべてのファイルを解凍し、解凍時にフォルダー名を保持したい。
次のバッチ スクリプトではうまくいきません。ファイルをフォルダーに入れずに大量のファイルをスローするだけで、終了しません。
ここで何が問題なのですか?
for /F %%I IN ('dir /b /s *.zip') DO (
"C:\Program Files (x86)\7-Zip\7z.exe" x -y -o"%%~dpI" "%%I"
)
特定のディレクトリ内のすべてのファイルを解凍し、解凍時にフォルダー名を保持したい。
次のバッチ スクリプトではうまくいきません。ファイルをフォルダーに入れずに大量のファイルをスローするだけで、終了しません。
ここで何が問題なのですか?
for /F %%I IN ('dir /b /s *.zip') DO (
"C:\Program Files (x86)\7-Zip\7z.exe" x -y -o"%%~dpI" "%%I"
)
これを試して:
for /R "C:\root\folder" %%I in ("*.zip") do (
"%ProgramFiles(x86)%\7-Zip\7z.exe" x -y -o"%%~dpI" "%%~fI"
)
または (Zip ファイルにちなんで名付けられたフォルダーにファイルを抽出する場合):
for /R "C:\root\folder" %%I in ("*.zip") do (
"%ProgramFiles(x86)%\7-Zip\7z.exe" x -y -o"%%~dpnI" "%%~fI"
)
これを試して。
@echo off
for /F "delims=" %%I IN (' dir /b /s /a-d *.zip ') DO (
"C:\Program Files (x86)\7-Zip\7z.exe" x -y -o"%%~dpI\%%~nI" "%%I"
)
pause