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

时间:2014-03-26 10:47:53

标签: batch-file cmd

在Windows 7上....

这个SO答案对我来说似乎有误: Use of Percent Sign as a CMD Parameter

在Called.bat

echo 1=%1

来电蝙蝠

call called.bat "percent%%sign"

结果

%%% sign = percent

" PERCENT %%登录" ="百分比"

%^%sign = percent

" ^百分比%符号" ="%^%签署"

%%%%% sign = percent

%%%% sign = percent

"百分之%%%%登录" ="百分比"

"百分之%%%登录" ="百分比"

3 个答案:

答案 0 :(得分:2)

<强>呼叫者

@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。

答案 1 :(得分:0)

当我使用second.bat

@echo off
echo %~1

现在有两种情况 如果您从批处理文件中调用second.bat,则调用方批处理中的CALL行必须为
call called.bat "percent%%%%sign"
只要参数

中没有空格,就可以省略引号

如果直接从cmd-prompt调用called.bat,则可以使用
call called.bat "percent%sign"

答案 2 :(得分:0)

好的,这个是我的坏人。该问题是由JP Software的名为“Take Command”v13的cmd shell软件引起的。 echo命令的行为不同。我目前还不了解如何让它正常工作。