Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用批处理脚本在Windows上压缩同名文件_Windows_Batch File_Zip - Fatal编程技术网

使用批处理脚本在Windows上压缩同名文件

使用批处理脚本在Windows上压缩同名文件,windows,batch-file,zip,Windows,Batch File,Zip,假设我们有: 萨默迪尔 file1.eps file1.jpg file2.eps file2.jpg 我想做的是,获得每个eps、jpg组合的拉链,并使用相同的名称,如: 萨默迪尔 file1.zip file2.zip 我不知道该怎么做。有什么建议吗?您可以在WinRAR的帮助下轻松完成: @setlocal @echo off set path="C:\Program Files\WinRAR\";%path% forfiles /s /m *.jpg /C "cmd /c

假设我们有:

  • 萨默迪尔
    • file1.eps
    • file1.jpg
    • file2.eps
    • file2.jpg
我想做的是,获得每个eps、jpg组合的拉链,并使用相同的名称,如:

  • 萨默迪尔
    • file1.zip
    • file2.zip

我不知道该怎么做。有什么建议吗?

您可以在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

在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

下面是我使用windows native 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

下面是我使用windows native 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

为什么要使用
forfiles
命令而不是标准的
for
命令,这要快得多?为什么要使用
forfiles
命令而不是标准的
for
命令,这要快得多?