簡體   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