我使用的是7-zip和Windows 2008 Server,需要在C:\Original
中尚未包含相应ZIP文件的文件夹C:\Archived
中压缩每个文件。我更喜欢使用.bat
文件。
C:\Original
文件夹包含一系列永不改变的.PDF
个文件,如下所示:
我想运行一个批处理文件,该文件将为C:\Archive
文件夹中的每个PDF创建一个ZIP文件,但前提是该文件尚不存在。例如,如果C:\Archive
文件夹中已包含两个文件:
运行批处理文件只会压缩两个解压缩的文件HouseLayout.pdf
和SurveyResults.pdf
。
我有一个使用FOR
命令的批处理文件,该命令将C:\Original
中的所有文件的ZIP ,但我只想将那些尚未存在的文件压缩存在于C:\Archive
。
由于
答案 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
)