Ale*_*lex 1 windows batch-file
我正在努力理解批处理脚本之间%1和%1%批处理脚本之间的区别,但是在SO中给出的解释没有意义,是错误的,或者我有完全的误解或者测试脚本工作不正确.
在Windows 7上,我使用的是此处给出的脚本:
@echo off
set Name=Amit
set 1=First
set 2=Second
echo My own environmental variables are:
echo Name=%Name%, 1=%1%, 2=%2%"
echo The user invoked this batch file with a parameter of %1
Run Code Online (Sandbox Code Playgroud)
它给出了以下输出:
> tester.bat
My own environmental variables are:
Name=Amit, 1=2"
The user invoked this batch file with a parameter of .
Run Code Online (Sandbox Code Playgroud)
和
> tester.bat test
My own environmental variables are:
Name=Amit, 1=test2"
Run Code Online (Sandbox Code Playgroud)
我的结论:%1并且%1%是等价的.是这样吗?用户使用test参数调用了此批处理文件.
.
正如foxidrive所建议的那样:
@echo off
echo %1% abc %2%
pause
echo %1 abc %2
pause
Run Code Online (Sandbox Code Playgroud)
运行为tester.bat aaa bbb给出第一个输出:aaa2和第二个输出aaa abc bbb.
是的,%1%语法不正确.
像这样启动此批处理文件以查看它如何影响脚本:file.bat aaa bbb
@echo off
echo %1% abc %2%
pause
echo %1 abc %2
pause
Run Code Online (Sandbox Code Playgroud)
以下是上述控制台输出:
aaa2
Press any key to continue . . .
aaa abc bbb
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为该术语%1% abc %2%被解析为%1
,然后调用的环境变量% abc %在上面的场景中没有定义,
加上a 2和%被丢弃的孤独.
| 归档时间: |
|
| 查看次数: |
954 次 |
| 最近记录: |