我amtrying理解%1 和%1%在批处理脚本,但无论哪种解释之间的差异在SO没有意义,是错误的,或者我有一个完整的误解或测试脚本无法正常工作给出。
在Windows 7中,我使用给出的剧本<一个href=\"http://social.technet.microsoft.com/Forums/scriptcenter/en-US/6b7d6b97-3b08-4b14-8b7e-77840fb02c2f/difference-between-1-and-1-in-batch-scripting?forum=ITCG\"相对=nofollow”>这里:
关闭@echo 设置名称=阿米特 设置1 =第一 设置2 =第二 回声我自己的环境变量是: 回声名称=%名称%,1 =%1%,2 =%2% 回声用户调用此批处理文件的%1的参数
这给下面的输出:
&GT; tester.bat 我自己的环境变量是: 名称=阿米特,1 = 2 用户使用的参数调用该批处理文件。
和
&GT; tester.bat测试 我自己的环境变量是: 名称=阿米特,1 = TEST2
我的结论:%1 和%1%是等价的。这是这样的吗?
用户调用此批处理文件与测试的参数。
由于建议的foxidrive:
关闭@echo 回声%1%ABC%2% 暂停 回声%1%ABC 2 暂停
运行为 tester.bat AAA BBB 给第一个输出: aaa2 和第二输出 AAA ABC BBB 。
解决方案
是%1%是不正确的语法。
启动,像这样这个批处理文件,看看它是如何影响的脚本: file.bat AAA BBB
关闭@echo 回声%1%ABC%2% 暂停 回声%1%ABC 2 暂停
下面是控制台输出上面的:
aaa2 preSS任意键继续。 。 。 AAA ABC BBB preSS任意键继续。 。 。
这是因为这个词%1%ABC%2%被解析为%1 结果
然后叫环境变量%ABC%这是不是在上述情况下的定义,结果
再加上 2 和一个孤独的%这将被丢弃。