使用 7zip 的批处理脚本:我希望 zip 文件的名称与原始文件相同

使用 7zip 的批处理脚本:我希望 zip 文件的名称与原始文件相同

我对创建 .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

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 命令。

相关内容