繁体   English   中英

在批处理参数CALL中传递百分号

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM