В Windows я хотел бы использовать какой-то пакетный файл, чтобы разархивировать файлы в нескольких каталогах одновременно.

Например :

Начальный каталог

--Foo1

----file1.zip

--Foo2

----Foo2.zip

Сценарий будет запускаться с Foo в качестве исходного каталога, искать доступный подкаталог и извлекать все файлы в этом каталоге.

2 ответа2

1

Вот как я это сделал:

@setlocal
@echo off
set path="C:\Program Files\WinRAR\";%path%
for /F %%i in ('dir /s/b *.rar') do call :do_extract "%%i"
goto :eof

:do_extract
echo %1
mkdir %~1.extracted
pushd %~1.extracted
unrar e %1
popd
0

Вы хотите команду FOR с параметром /R :

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

    Walks the directory tree rooted at [drive:]path, executing the FOR
    statement in each directory of the tree.  If no directory
    specification is specified after /R then the current directory is
    assumed.  If set is just a single period (.) character then it
    will just enumerate the directory tree.

Введите help for в командной строке для получения полной информации об использовании.

И помните, если вы используете переменные в скрипте, вам нужно использовать %% вместо%.

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