我正在寻找一种方法来压缩文件名未知的文件。我正在努力如何将文件名转换为我的变量。 这是我的代码:
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
答案 0 :(得分: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"
)