Batch file 批处理:用空格回显两个参数
我正在编写批处理脚本,在回显两个变量时遇到了一些问题。为此,我创建了该文件 测试蝙蝠 回显%2% echo“调用两个参数” 回声-%1%%2% 调用时,会出现什么输出:Batch file 批处理:用空格回显两个参数,batch-file,batch-processing,Batch File,Batch Processing,我正在编写批处理脚本,在回显两个变量时遇到了一些问题。为此,我创建了该文件 测试蝙蝠 回显%2% echo“调用两个参数” 回声-%1%%2% 调用时,会出现什么输出: test.bat 1235 899 899 "Calling Two Paramters" - `12352` 现在,预期输出必须为: 1235 899 请帮助更改您的test.bat,如下所示: echo "Calling Two Paramters" echo - %~1 echo %1 %2%
test.bat 1235 899
899
"Calling Two Paramters"
- `12352`
现在,预期输出必须为:
1235 899
请帮助更改您的test.bat,如下所示:
echo "Calling Two Paramters"
echo - %~1
echo %1 %2%
这样称呼它:
echo "Calling Two Paramters"
echo - %~1
echo %1 %2%
test.bat“1235 899”
子例程和批处理文件参数仅在开头有%
带分隔符的参数需要用双引号括起来
%~1
此处的tilda用于取消引用。修改脚本的最后一行,如下所示:
echo "Calling Two Paramters"
echo - %~1
echo %1 %2%
您的错误:
@echo off
echo %2
echo "Calling Two Paramters"
echo - %1 %2
在批处理文件中使用参数时,没有尾随的百分比字符。因此,第一个参数是%1,而不是%1%
奖金提示:
@echo off
echo %2
echo "Calling Two Paramters"
echo - %1 %2
我喜欢使用@echo off作为批处理文件的第一行,因此命令解释器在解析(和执行)它们之前不会回显所有行
示例:
@echo off
echo %2
echo "Calling Two Paramters"
echo - %1 %2
如果您不想使用@echo,可以将其丢弃;) 您希望将
1235 899
视为单个参数,还是希望将其视为两个参数1235
和899
?两个不同的参数可以。。。所以正确的最后一行是:echo-%~1%~2
(正如@npocmaka在中已经指出的,只有一个%
参数,而~
修饰符消除了qouotes周围的潜在影响;显然你的问题对他来说不够清楚——就像我一样——所以他将这两个数字解释为一个参数)…谢谢您的帮助…不。我有两个不同的参数,因为我需要将这两个参数传递给调用脚本,其中第一个是我的streamname,第二个是version.@R.Sha-然后您可以使用echo%1%2
这会起作用,但因为有一个黑客会将最后一个%
解释为空变量的开始。请注意最好使用echo%1%2
,或者更好的echo%~1%~2