Если у вас есть 7-Zip:
set 7zip="C:\Program Files\7-Zip\7z.exe"
IF EXIST "path\to\file.zip" (
%7zip% x -o"path\to\new\folder" "path\to\file.zip"
)
Следующая строка будет рекурсивно искать в подпапках любой zip-файл. В приведенном ниже примере сценарий начнет рекурсивный поиск со значения root из C :. Путь к файлу будет сохранен как переменная для последующего вызова.
for /f "tokens=*" %%x in ('forfiles /p C:\ /m *.zip /s /c "cmd /c echo @path"') do if exist %%x (
%7zip% x -o"path\to\new\folder" %%x
)
Другим способом рекурсивного поиска по нескольким буквам дисков является установка букв дисков в качестве переменных в FOR l oop. В следующем примере проверяется, существует ли буква диска, затем ищите zip-файл во всем каталоге. Пример:
for %%i in (c:\, d:\, e:\, f:\, <enter as many as needed>) do if exist %%i (
for /f "tokens=*" %%x in ('forfiles /p %%i /m *.zip /s /c "cmd /c echo @path"') do if exist %%x (
%7zip% x -o"path\to\new\folder" %%x
)
)