CMD:从源路径压缩文件(可变)

CMD: Zipping files from source path (variable)

如果存在 pdf 文件,我想用 .docx 文件(相同的文件名)压缩它。添加源变量后我的批次中断 - 不知道为什么。

echo. Input source path
set /p "source="
set "destination=C:\Users\<user_name>\Documents"    
for "%source%\%%f" in (*.docx) do if exist "%source%\%%~nf.pdf" 7za.exe a -tzip -mx5 -mmt=on "%destination%\%%~nf.zip" "%source%\%%~nf.docx" "%source%\%%~nf.pdf"

您错误地调用了 for 循环。您需要将 %source% 放在括号内。 %%f是变量,不是源文件。

for %%f in (%source%\*.docx) do if exist "%source%\%%~nf.pdf" 7za.exe a -tzip -mx5 -mmt=on "%destination%\%%~nf.zip" "%source%\%%~nf.docx" "%source%\%%~nf.pdf"