windows - Batch 中引用文件名的问题

标签 windows batch-file

让我有一个批处理程序:

SET FOO=C:\temp\%1
bar.exe %FOO%

当我用双引号文件名作为参数调用它时,我在中间得到了这些引号;而这个事实会阻止其他程序正常工作:

> fail.bat "aa bb.jpg"
SET FOO=C:\temp\"aa bb.jpg"
> bar.exe C:\temp\"aa bb.jpg"
cannot find file

如何获取包含正确值“C:\temp\aa bb.jpg”的变量?

最佳答案

您可以改用 %~1,这会从参数中删除引号。
那么你的代码应该是这样的

SET FOO="C:\temp\%~1"
bar.exe %FOO%

关于windows - Batch 中引用文件名的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6769849/

相关文章:

windows - ClickOnce URLDownloadToCacheFile 安装失败的原因是什么?

Windows批处理文件复制并保留重复项

batch-file - 从快捷方式链接中提取路径 - Windows 批处理

windows - 通过 ruby​​ 脚本更改 Windows 浏览器代理设置

windows - 截取使用 createdesktop api 创建的桌面的屏幕截图

windows - 如何将Win2K3改造为工作站开发操作系统?

linux - 反向差异功能

batch-file - 在 z/OS 上运行部署在 Liberty 配置文件中的 Java 批处理

Windows 批处理脚本获取当前驱动器名称

windows - CMD 无文件相当于 < 重定向