获取未知文件名以批量压缩文件

get unknown filename to zip the file in batch

我正在寻找一种压缩文件名未知的文件的方法。我正在努力研究如何将文件名放入我的变量中。 这是我的代码:

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

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

"C:\program files-zipz.exe" a -r -sdel  \%HOST%\%DRIVELTR%$\%OMGEVING%\filename.zip \%HOST%\%DRIVELTR%$\%OMGEVING%\filename.txt
FOR %%i IN ("\%~1\%~2$\%~3\*.*") DO (
    "C:\program files-zipz.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-zipz.exe" a -r -sdel  "%%~dpni.zip" "%%~fi"
)