在参数中传递'='到Windows批处理文件

Han*_*örr 3 windows batch-file

将以=符号结尾的参数传递给批处理文件时遇到了麻烦.考虑一下(>是Windows XP提示符):

> type c.bat
echo %1

> c.bat bla=
bla

> c.bat "bla="
"bla="
Run Code Online (Sandbox Code Playgroud)

为什么=bla=吞噬?我怎么能在一个参数中传递一个=符号?

Ted*_*sen 7

这是一个已知问题:http://support.microsoft.com/kb/35938

你可以像这样绕过它:

SET ARG1=bla= && your.bat && SET ARG1=
Run Code Online (Sandbox Code Playgroud)

和your.bat:

@ECHO OFF
ECHO %ARG1%
Run Code Online (Sandbox Code Playgroud)

或者,您可以将其作为带引号的参数传递(使用""围绕它):

your.bat "bla="
Run Code Online (Sandbox Code Playgroud)

然后在批处理文件中使用它,如下所示:

echo %~1
Run Code Online (Sandbox Code Playgroud)

~那里在这种情况下只是删除了引号.