Поначалу команда for
может очень сбить с толку, однако есть много видео и сайтов, на которых показаны примеры ее использования. Для начала попробуйте for /?
, чтобы увидеть встроенную справочную информацию.
Приведенный ниже код должен быть тем, что вам нужно, если я правильно понимаю ваши требования ... если нет, то это должно помочь вам понять принципы и настроить для ваших нужд.
for /F "tokens=*" %%a in ('DIR /A-D /B /ON "C:\Test Folder\"') do (
echo Processing File: C:\Test Folder\%%a
"C:\Program Files\7-Zip\7z.exe" a -mx1 -tzip "C:\Test Folder\%%a.zip" "C:\Test Folder\%%a"
echo.
)
pause
Теперь пропускаем go через него строка за строкой ...
for /F "tokens=*" %%a in ('DIR /A-D /B /ON "C:\Test Folder\"') do (
/F
Говорит, чтобы он работал вместо files
из directories
(/D
)
in (' ')
Содержит команду, которая находит имена файлов. Обратите внимание на отметки '
на каждом конце команды ... они важны.
%%a
Представляет каждое значение имени файла, которое передается командой in()
.
do ( )
Что он должен делать с каждым полученным значением %%a
.
Теперь мы переходим к команде, которая находит имена файлов и передает в раздел do ()
как %%a
('DIR /A-D /B /ON "C:\Test Folder\"')
Подробнее об этом можно узнать, запустив dir /?
/A-D
Указывает игнорировать каталоги ... только файлы списка.
/B
Вывод только имена файлов, а не что-либо еще, например размеры, или это может привести к путанице в команде for
.
/ON
Передать имена файлов в команду do()
в алфавитном порядке
"C:\Test Folder\"
Папка, которая содержит все файлы, которые мы хотим перечислить / выполнить действия. Удостоверьтесь, что вы включили конечный знак sh. Также используйте метки ""
или не будет работать, если в имени папки есть пробел.
Записать (эхо) на экран сообщение, показывающее, какой файл он собирается сделать.
echo Processing File: C:\Test Folder\%%a
Более подробную информацию об использовании функций командной строки 7zip можно найти по адресу https://sevenzip.osdn.jp/chm/cmdline/syntax.htm
"C:\Program Files\7-Zip\7z.exe" a -mx1 -tzip "C:\Test Folder\%%a.zip" "C:\Test Folder\%%a"
"C:\Program Files\7-Zip\7z.exe"
Запустите эту программу. ... и передать ему следующую информацию (аргументы / переключатели)
a
Добавлять файлы, а не извлекать, et c.
-mx1
Использовать самый быстрый метод сжатия .. .но меньше места.
-tzip
Используйте формат сжатия ZIP
"C:\Test Folder\%%a.zip"
Сохраните новый файл "zip" как этот. (%%a
будет заменено именем текущего файла ... aka ChuckNorris.mpg, который в конечном итоге будет называться ChuckNorris.mpg.zip)
"C:\Test Folder\%%a"
Это фактический файл, который вы хотите сжать .