批处理文件连接命令行参数

5

举个例子,我创建了一个名为concatenate.bat的批处理文件:

@echo off
set foo=%1\bar
echo %foo%

当我运行concatenate.bat "C:\somewhere\with spaces"时,
我希望foo输出:"C:\somewhere\with spaces\bar"
但实际上我得到的是:"C:\somewhere\with spaces"\bar
我还尝试了:set "foo=%1\bar"
输出结果为:"C:\somewhere\with spaces"\bar
正确的方法是什么?
1个回答

9
@echo off
set foo="%~1\bar"
echo %foo%

1
有人能解释一下这个答案在说什么吗?谢谢。 - DevJem
1
可以在这个答案中找到有关%~1的解释。简而言之,它会展开%1并删除任何周围的引号。 - da-sha1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接