У меня очень мало опыта создания файлов .bat - у меня есть несколько файлов .bak, которые мне нужно сжать - в этот каталог регулярно добавляются новые файлы .bak. Я пытаюсь настроить задание, которое проверяет любые файлы .bak и архивирует их. Я хочу передать имя файла .bak так, чтобы файл .zip имел то же имя, что и файл .bak.

Итак, TestFile1.bak = TestFile1.zip, TestFile2.bak = TestFile2.zip ... и т.д.

У меня есть это до сих пор, и он работает, чтобы сжать только один файл, или он архивирует много файлов .bak в один файл .zip. Я не могу понять, как пройти через имя файла .bak.

7za a -tzip "C:\TestArchive\AutoArchived\" "C:\TestArchive *. *" -Mx5

1 ответ1

0

Что бы вам помочь, это команда FOR.

for /f "delims=#" %%i in ('dir /b *.bak') do ( 
  echo now working on file %%i
  rem use %%i in the 7zip command to compress only one file
)

Это зациклит все файлы, возвращенные командой dir. В каждом цикле %% i будет содержаться один файл, который вы затем сможете использовать для своей команды 7zip.

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