2014-02-18 41 views
1

我使用7-ZIP和Windows 2008 Server和需要ZIP每個文件夾中C:\Original不已經有一個相應的ZIP文件在C:\Archived。我寧願用.bat文件做這個。ZIP目錄中的每個文件不已經在另一個文件夾中有一個壓縮版本

C:\Original文件夾中包含了一系列的.PDF文件,這些文件不會改變,就像這樣:

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

我想運行一個批處理文件,將在每一個個PDF創建ZIP文件e C:\Archive文件夾,但前提是該文件尚不存在。舉例來說,如果C:\Archive文件夾中已經有兩個文件:

  • MyResume.zip
  • BlahBlahBlah.zip

運行批處理文件將ZIP只是兩個解壓縮文件,HouseLayout.pdfSurveyResults.pdf

我有一個使用FOR命令,將ZIP文件的所有C:\Original一個批處理文件,但我只想要ZIP那些不已經在C:\Archive存在。

感謝

回答

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

對於每一個文件在指定的文件夾/如果不存在的文件具有相同的名稱,但與zip擴展集,使用裏面的原始文件創建zip文件。

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 
) 
+0

這將只處理一個文件。 – foxidrive

相關問題