При чтении справки для 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
Если это не сработает, я удалю этот раздел из ответа.