Код ниже берет все zip-файлы в каталоге DirForZip и распаковывает его в один каталог UnzippedDir.
@echo off
for /R "C:\Users\ferit\Downloads\DirForZip" %%I in ("*.zip") do (
"C:\Program Files\7-Zip\7z.exe" x -y -o"C:\Users\ferit\Downloads\UnzippedDir" "%%~fI"
)
Структура данных в каталоге DirForZip выглядит следующим образом:
DirForZip
-test.zip
-bbb.pptx
-xsad.doc
-dasda.docx
-Folder ajsdhasd
- 12334.zip
-a.doc
-5asd.xls
-yxaawdqd.pptx
-Folder skjdfhdshf
- ahsdjasd.zip
-asdasdb.txt
-uiueewr.rar
-asadsd.bat
-hdsjfhsdf.7z
-Folder sjdkfhsdf
....
...
Однако я хочу, чтобы zip-файлы были разархивированы в соответствующем каталоге в UnzippedDir.
UnzippedDir
-bbb.pptx
-xsad.doc
-dasda.docx
-Folder ajsdhasd
-a.doc
-5asd.xls
-yxaawdqd.pptx
-Folder skjdfhdshf
-asdasdb.txt
-uiueewr.rar
-asadsd.bat
-hdsjfhsdf.7z
-Folder sjdkfhsdf
...
Как изменить мой код, показанный выше? И можно ли это сделать без использования 7zip?
Редактировать: С помощью приведенного ниже кода создаются соответствующие подкаталоги.
@echo off
for /R "C:\Users\ferit\Downloads\DirForZip" %%I in ("*.zip") do (
"C:\Program Files\7-Zip\7z.exe" x -y -aou -o"C:\Users\ferit\Downloads\UnzippedDir\*" "%%~fI"
)
Только одно не правильно. Если подкаталога нет (например, см. Для test.zip выше), создается каталог test.zip, который не распаковывается непосредственно в каталог root. Как это исправить?