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