批处理中引用文件名的问题

时间:2011-07-20 23:47:13

标签: 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”的变量?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

尝试删除驱动器号,因为我以前遇到过问题。如果整个路径名在引号中而不仅仅是带有空格的单个项吗?

也可以