我需要一个 compact.exe 的 .bat 并忽略文件类型?

我需要一个 compact.exe 的 .bat 并忽略文件类型?

我正在使用任务计划程序每隔几天运行一个批处理文件来压缩备份驱动器上的文件,以便在其上压缩更多文件。

这是我使用的

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

有没有办法让它运行并忽略 .7z 文件?我可能会将 .mp4 .mkv 添加到要忽略的列表中,因为这些文件通常都是压缩的。

谢谢

答案1

您可以使用对于/R循环并附带一些条件如果逻辑只袖珍的文件如果文件扩展名不是.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

更多资源

  • 支持/R
  • 如果
  • 批量替换 (FOR /?)

    此外,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.
    

相关内容