2015-04-21 47 views
1

我正在尋找一種方法來壓縮文件的未知文件名。我正在努力如何將文件名存入我的變量中。 這是我的代碼:獲取未知的文件名批量壓縮文件

set HOST=%1 
set DRIVELTR=%2 
set OMGEVING=%3 

FOR %%i IN (\\%HOST%\%DRIVELTR%$\%OMGEVING%\*.*) DO set filename="%%~i" 

"C:\program files\7-zip\7z.exe" a -r -sdel \\%HOST%\%DRIVELTR%$\%OMGEVING%\filename.zip \\%HOST%\%DRIVELTR%$\%OMGEVING%\filename.txt 

回答

2
FOR %%i IN ("\\%~1\%~2$\%~3\*.*") DO (
    "C:\program files\7-zip\7z.exe" a -r -sdel "%%~dpni.zip" "%%~fi" 
) 

  • %~1%~3是參數的批處理文件不帶引號

  • %%~dpni是驅動器,路徑和名稱(無擴展名)%%i

  • %%~fi正在%%i

注意引用的文件的完整路徑:如正在被重複相同的文件夾中生成的.zip文件,它有可能是for循環檢索新的.zip文件。如果不能縮小通配符或其他地方產生.zip文件,你可以檢查文件的擴展名是.zip試圖將文件

FOR %%i IN ("\\%~1\%~2$\%~3\*.*") DO if /i not "%%~xi"==".zip" (
    "C:\program files\7-zip\7z.exe" a -r -sdel "%%~dpni.zip" "%%~fi" 
) 
+0

罐壓縮你的快速響應之前。我會在稍後嘗試。 – Sebh1990

+0

工作就像一個魅力thx! – Sebh1990