批处理参数替换中的路径运算符的以下用法无效

时间:2012-04-20 05:45:51

标签: batch-file

在a.bat

if ... set a.b=1
...
set c=%%~!a.b!

echo%c%打印%~1,但我需要%~1的内容。 但set c=%~!a.b!导致“批处理参数替换中路径运算符的以下用法无效:%〜!a.b!。”怎么解决?

1 个答案:

答案 0 :(得分:4)

您无法直接使用评估表达式访问参数,
因为百分比扩张是第一个phases of the parser之一。

CALL-trick 可以帮到你。

这样的东西
set paramNo=1
call echo %%~%paramNo%

将首先扩展到 call echo %%~1
并且CALL将重新启动解析器,以便获得所需的结果。