我正在使用7-zip和Windows 2008服务器,需要压缩文件夹C:Original
中的每个文件,该文件夹中还没有相应的C:Archived
ZIP文件。我更喜欢使用 .bat
文件执行此操作。
C:Original
文件夹包含一系列永不更改的.PDF
文件,如下所示:
- 我的简历.pdf
- 房屋布局.pdf
- 调查结果.pdf
- 哗啦啦啦.pdf啦� �
我想运行一个批处理文件,该文件将为C:Archive
文件夹中的每个 PDF 创建一个 ZIP 文件,但前提是该文件尚不存在。例如,如果C:Archive
文件夹中已经有两个文件:
- 我的简历.zip
- 呸.zip呸� �
运行批处理文件将仅压缩两个解压缩的文件,HouseLayout.pdf
和SurveyResults.pdf
。
我有一个批处理文件,它使用 FOR
命令,该命令将 ZIP C:Original
中的所有文件,但我只想压缩那些C:Archive
中尚不存在的文件。
谢谢
for %%f in ("c:original*.pdf") do if not exist "c:archive%%~nf.zip" (
7za a "c:archive%%~nf.zip" "%%~ff"
)
对于指定文件夹/集中的每个文件,如果不存在名称相同但扩展名为 zip 的文件,请创建包含原始文件的 zip 文件。
我认为你需要这样的东西:
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
)