1

У меня есть корневой каталог со многими различными подкаталогами, в которых есть файлы .zip (пример ниже). Мне нужен пакет /.cmd /etc, чтобы разархивировать zip-файлы в их подкаталогах и переименовать извлеченный файл (.tif) так же, как zip-файл. Я исследовал и нашел следующий код, однако он будет работать только при размещении в подкаталогах. Не родительская папка. Как заставить этот код работать через все подкаталоги, как объяснено?

Пример структуры файла

C:\This\Is\Random\Parent\Sub\Sub\1234.zip {ABCD.tif}

Что я ищу C:\This\Is\Random\Parent\Sub\Sub\1234.tif

set work=%temp%\%random%%random%%random%%random%
mkdir "%work%" || goto :eof

for %%A in ('dir /b /s *.zip *.rar') do (
"%ProgramFiles%\7-Zip\7z.exe" e -o"%work%" "%%~A"
for %%F in ("%work%\*") do move "%%~F" "%%~nA%%~xF"
)

rmdir "%work%"

1 ответ1

1

Мне удалось внести следующие изменения, чтобы добиться того, что я искал

set work=%temp%\%random%%random%%random%%random%
mkdir "%work%" || goto :eof

for /F %%I IN ('dir /b /s *.zip *.rar') do (
"%ProgramFiles%\7-Zip\7z.exe" x -o"%work%" "%%~I"
for %%F in ("%work%\*") do move "%%~F" "%%~nI%%~xF"
)

rmdir "%work%"

Единственная проблема сейчас заключается в том, что «.zip» входит в название извлеченного .tif. Помощь в решении этого будет оценена

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .