Я хочу создать файл bat, который сжимает все папки внутри определенного каталога, а затем удаляет их. Например, структуры папок (перед запуском файла BAT):Как создать файл bat, который застегивает все папки с помощью winzip?
VidoesArch
January
February
March
....
TextualArch
January
February
March
....
Folder structure (after running bat file):
VideosArch
January.zip
February.zip
March.zip
....
TextualArch
January.zip
February.zip
March.zip
....
Это то, что я разработал до сих пор:
@echo off
setlocal
set INPBKP=C:\Data\Backup\VideosArch
set OUTBKP=C:\Data\Backup\TextualArch
set WZLOC=C:\PROGRA~2\WINZIP
:: Caution: Use a drive where sufficient disk space is available for this setting.
set WORKDIR=K:\
:: DO NOT CHANGE ANYTHING BEYOND THIS POINT
set COMPCMD="%WZLOC%\WZZIP.EXE" -m -ex -b%WORKDIR% -a
for /F "USEBACKQ DELIMS==" %%t in (`dir %INPBKP%\*.dat /a/s/b`) do @%COMPCMD% %%t.zip %%t
for /F "USEBACKQ DELIMS==" %%t in (`dir %OUTBKP%\*.dat /a/s/b`) do @%COMPCMD% %%t.zip %%t
endlocal
Что этот файл делает, он пронестись все .dat файлы папки. То, что я хочу достичь, это закрепить все папки.
Update:
Я изменил содержимое файла, и теперь он выглядит следующим образом. Это не работает. Если я попытаюсь запустить в командной строке, он говорит: «Система не может найти указанный файл».
@echo off
setlocal
set INPBKP=C:\Data\Backup\VideosArch
set OUTBKP=C:\Data\Backup\TextualArch
set WZLOC=C:\PROGRA~2\WINZIP
:: Caution: Use a drive where sufficient disk space is available for this setting.
set WORKDIR=C:\
:: DO NOT CHANGE ANYTHING BEYOND THIS POINT
set COMPCMD="%WZLOC%\WZZIP64.EXE" -r -p -m -ex -b%WORKDIR%
for %%s in ("%INPBKP%" "%OUTBKP%") do for /F "DELIMS==" %%t in ('dir %%s /ad /b') do %COMPCMD% %%~nt.zip "%%~s\%%t"
endlocal
Его не работает. См. Обновление. – JohnLogan1017
К сожалению, «не работает» не дает много подсказок. Он закрепил содержимое каждого подкаталога двух назначенных каталогов в * nominated * \ subdirname.zip для меня. – Magoo
Его работы. Дает коэффициент сжатия 90%. Благодарю. – JohnLogan1017