使用批处理脚本在Windows上压缩具有相同名称的文件

时间:2016-12-31 06:41:15

标签: windows batch-file zip

假设我们有:

  • somedir
    • file1.eps
    • file1.jpg
    • file2.eps
    • file2.jpg

我想要做的是,为了获得每个eps的拉链,jpg以相同的名字结合:

  • somedir
    • file1.zip
    • file2.zip

我无法弄清楚如何做到这一点。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您可以在WinRAR的帮助下轻松完成:

@setlocal
@echo off
set path="C:\Program Files\WinRAR\";%path%
forfiles /s /m *.jpg /C "cmd /c winrar.exe a -afzip "@fname.zip" "@fname.eps" "@fname.jpg"
pause

答案 1 :(得分:0)

这是我的Windows本机zip.exe示例。它只在当前目录中查找* .eps文件(因为您有一对具有相同名称和不同扩展名的文件),然后提取文件名,添加.eps和.jpg扩展名并以相同名称压缩它们。

for /r %i in (*.eps) do zip %~ni.zip %~ni.eps %~ni.jpg

如果您是在脚本内部编写的,则用%% i白色

for /r %%i in (*.eps) do zip %%~ni.zip %%~ni.eps %%~ni.jpg