[英]Passing percent sign in a batch parameter CALL
在Windows 7上....
这个SO答案似乎对我来说是错误的: 使用百分号作为CMD参数
在Called.bat中
echo 1=%1
来电棒
call called.bat "percent%%sign"
结果
百分比%%符号=百分比
“%%% sign”=“百分比”
百分比^%符号=百分比
“%^%sign”=“%^%sign”
%%%%%符号=百分比
百分比%%%符号=百分比
“%%%%%标志”=“百分比”
“%%%% sign”=“百分比”
呼叫者
@ECHO OFF
SETLOCAL
CALL qq22658604 "percent%sign"
CALL qq22658604 "percent%%sign"
CALL qq22658604 "percent%%%sign"
CALL qq22658604 "percent%%%%sign"
CALL qq22658604 percent%sign
CALL qq22658604 percent%%sign
CALL qq22658604 percent%%%sign
CALL qq22658604 percent%%%%sign
GOTO :EOF
qq22658604
@ECHO OFF
ECHO 1=%1
GOTO :EOF
结果
1="percentsign"
1="percentsign"
1="percentsign"
1="percent%sign"
1=percentsign
1=percentsign
1=percentsign
1=percent%sign
NFF。
当我使用second.bat
时
@echo off
echo %~1
现在有两种情况。
如果从批处理文件中调用second.bat
,则CALL
者批处理中的CALL
行必须是
call called.bat "percent%%%%sign"
只要参数内没有空格,就可以省略引号
如果直接从cmd-prompt调用called.bat
,则可以使用
call called.bat "percent%sign"
好的,这个是我的坏。 该问题是由JP Software的名为“Take Command”v13的cmd shell软件引起的。 echo命令的行为不同。 我目前还没有了解如何让它正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.