4

在一个.bat

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

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

4

1 回答 1

4

您不能直接使用评估表达式访问参数,
因为百分比扩展是解析器的第一阶段之一

但是CALL-trick可以在这里为您提供帮助。
就像是

set paramNo=1
call echo %%~%paramNo%

will 首先扩展为 call echo %%~1
并且CALL将重新启动解析器,因此您将获得所需的结果。

于 2012-04-20T07:47:06.203 回答