在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
"百分之%%%%登录" ="百分比"
"百分之%%%登录" ="百分比"
答案 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命令的行为不同。我目前还不了解如何让它正常工作。