Пакетный скрипт для распаковки файлов в определенную папку - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть несколько файлов .zip, которые я хочу распаковать с помощью скрипта.После короткого исследования.У меня есть этот скрипт:

for /R "C:\root\folder" %%I in ("*.zip") do (
  "%ProgramFiles(x86)%\7-Zip\7z.exe" x -y -o"%%~dpI" "%%~fI" 
)

Проблема в том, что он только разархивирует файлы в одну папку.У меня есть назначенная папка для разархивированных файлов, я не могу заставить скрипт переместить файлы в эту папку.У кого-нибудь есть идея, что мне нужно добавить в этот скрипт?

1 Ответ

0 голосов
/ 16 ноября 2018

При чтении справки для 7z в окне cmd вы заметите, что ключ -o является параметром выходного каталога.В настоящее время вы говорите, что это %%~dpI, что на самом деле является Drive и Path текущего zip-файла.Поэтому вы можете изменить каталог вывода:

for /R "C:\root\folder" %%I in ("*.zip") do (
  "%ProgramFiles(x86)%\7-Zip\7z.exe" x -y -oc"C:\root\folder2" "%%~fI"
)

У меня в настоящее время не установлен 7zip, но я почти на 100% уверен, что в него встроена рекурсивная функция, если да, то вам даже не нужноцикл for, вы можете просто попробовать:

7z.exe x -y "C:\root\folder\*.zip" -oc:"C:\root\folder2" -r

Если это не сработает, я удалю этот раздел из ответа.

...