bzip2 — сжатие всех файлов внутри папок (Windows)

У меня на компьютере есть утилита bzip, но она архивирует только те файлы, которые находятся внутри каталога «compress». Как мне сделать так, чтобы файлы во всех каталогах внутри каталога сжатия были заархивированы?

Пример

сжатие/изображение.png идет в сжатие/изображение.png.bz2

Однако

сжатие/папка/изображение.png остается как сжатие/папка/изображение.png

Мой пакетный файл выглядит следующим образом: @echo off

title bzip

echo            bzip
echo All files within /compress will be compressed as a .bz2
echo.
echo Compressing file(s)...

bzip2.exe -z compress/*.*

echo.
echo Compression Completed!
pause

Я надеюсь, что кто-нибудь может мне помочь!

Редактировать: при запуске процесса с каталогами внутри каталога сжатия он говорит «отказано в доступе».


person JakeGriffin    schedule 30.12.2013    source источник
comment
Справка bzip2 показывает какой-либо переключатель recursion/subdirectory?   -  person foxidrive    schedule 31.12.2013


Ответы (1)


Используйте for /r compress %%i in (*) do bzip2.exe "%%i" в пакетном файле вместо прямого вызова bzip2.exe. bzip2 почти наверняка не знает, как рекурсивно перемещаться по подпапкам - стандартные библиотеки подстановочных знаков в Windows обычно этого не делают.

Запустите for /? из командной строки, чтобы узнать больше о синтаксисе команды for. Если вы хотите протестировать команду из командной строки, а не из пакетного файла, используйте для переменной знак процента 1 вместо 2.

person afrazier    schedule 30.12.2013