Мне нужен.bat для compact.exe и игнорирования типов файлов?

Я использую планировщик задач, чтобы запускать пакетный файл каждые несколько дней, чтобы сжимать файлы на резервном диске и помещать на него больше файлов.

Это то, что я использую

H:
compact /c /s /i /exe:lzx
exit

Можно ли, например, запустить этот процесс и игнорировать файлы.7z? Я мог бы добавить.mp4 .mkv в список, чтобы его игнорировать, так как эти файлы обычно в любом случае сжимаются.

Спасибо

1 ответ

Решение

Вы можете использовать цикл For /R вместе с некоторой условной логикой If для сжатия файлов, только если расширение файла НЕ.7z используя некоторые простые FOR замены цикла, чтобы получить расширение файла от каждого повторного значения имени файла, которое обрабатывает цикл, и путем указания имен файлов с помощью команды.


скрипт

set Src=H:\
for /r "%Src%" %%a IN (*) DO IF /I NOT [%%~Xa]==[.7z] compact /c /s /i /exe:lzx "%%~a"
::::for /r "%Src%" %%a IN (*) DO IF /I NOT [%%~Xa]==[.7z] IF /I NOT [%%~Xa]==[.mp4] IF /I NOT [%%~Xa]==[.mkv] compact /c /s /i /exe:lzx "%%~a"
exit

Дополнительные ресурсы

  • FOR /R
  • ЕСЛИ
  • Пакетные замены (ЗА /?)

    Кроме того, была улучшена замена ссылок на переменные FOR. Теперь вы можете использовать следующий необязательный синтаксис:

    %~nI        - expands %I to a file name only
    
  • компактный

    Syntax
          COMPACT [/C | /U] [/S[:dir]] [/A] [ /I] [/F] [/Q] [filename [...]]
    
    Key
    
      filename  Specifies a pattern, file, or directory.
    
Другие вопросы по тегам