将每个文件压缩到另一个文件夹中尚未包含ZIP版本的目录中

时间:2014-02-18 19:28:51

标签: batch-file command-line 7zip

我使用的是7-zip和Windows 2008 Server,需要在C:\Original 中尚未包含相应ZIP文件的文件夹C:\Archived 中压缩每个文件。我更喜欢使用.bat文件。

C:\Original文件夹包含一系列永不改变的.PDF个文件,如下所示:

  • MyResume.pdf
  • HouseLayout.pdf
  • SurveyResults.pdf
  • BlahBlahBlah.pdf

我想运行一个批处理文件,该文件将为C:\Archive文件夹中的每个PDF创建一个ZIP文件,但前提是该文件尚不存在。例如,如果C:\Archive文件夹中已包含两个文件:

  • MyResume.zip
  • BlahBlahBlah.zip

运行批处理文件只会压缩两个解压缩的文件HouseLayout.pdfSurveyResults.pdf

我有一个使用FOR命令的批处理文件,该命令将C:\Original中的所有文件的ZIP ,但我只想将那些尚未存在的文件压缩存在于C:\Archive

由于

2 个答案:

答案 0 :(得分:1)

for %%f in ("c:\original\*.pdf") do if not exist "c:\archive\%%~nf.zip" (
    7za a "c:\archive\%%~nf.zip" "%%~ff"
)

对于指定文件夹/集合中的每个文件,如果不存在具有相同名称但带有zip扩展名的文件,请创建包含其中原始文件的zip文件。

答案 1 :(得分:0)

我认为你需要这样的东西:

for /F %%I in ('dir /b c:\original\*.pdf') do set filename=%%I
set archivedFile=%filename:~,-4%

if not exist C:\archive\%archivedFile%.zip (
  REM zip it up
)