在Windows 7上....
这个SO的答案对我来说似乎是错误的:Use of Percent Sign as a CMD Parameter
在Called.bat中
echo 1=%1呼叫者蝙蝠
call called.bat "percent%%sign"结果
百分比%%符号=百分比
“百分比%%符号”=“百分比”
百分比^%符号=百分比
“百分比^%符号”=“百分比^%符号”
percent%%%%sign=百分比
percent%%%sign=百分比
“百分比%符号”=“百分比”
“百分比%符号”=“百分比”
发布于 2014-03-27 11:13:25
调用者
@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 :EOFqq22658604
@ECHO OFF
ECHO 1=%1
GOTO :EOF结果
1="percentsign"
1="percentsign"
1="percentsign"
1="percent%sign"
1=percentsign
1=percentsign
1=percentsign
1=percent%signNFF。
发布于 2014-03-26 19:12:28
当我将second.bat与
@echo off
echo %~1现在有两个案例。
如果从批处理文件调用second.bat,则调用方批处理中的CALL行需要
call called.bat "percent%%%%sign"
只要参数中没有空格,就可以省略引号
如果直接从命令提示符调用called.bat,则可以使用
call called.bat "percent%sign"
发布于 2014-03-27 14:17:54
好吧,这是我的错。该问题是由名为"Take Command“v13 by JP Software的cmd外壳软件引起的。echo命令的行为有所不同。我现在还不知道如何让它正确地工作。
https://stackoverflow.com/questions/22658604
复制相似问题