传递参数时批量使用“=”作为字符串
Batch use "=" as a string when passing argument
funtion.bat 回显变量
set "Var1=%1"
set "Var2=%2"
set "Var3=%3"
echo %Var1% %Var2% %Var3%
我使用了一个通过传递 3 个参数来调用此函数的批处理
call function.bat blabla= argument2 TEST.txt
如您所见,我的第一个论点中有一个等号。但我想将它用作字符串而不是运算符。
当我 运行 批处理时,这是我得到的结果:
blabla
argument2
TEST.txt
这是我想要的结果:
blabla=
argument2
TEST.txt
有人知道如何获得 "blabla=" 吗?
来自 cmd /?
在命令中:
The special characters that require quotes are:
<space>
&()[]{}^=;!'+,
~ `
如您所见,您应该引用 几乎所有包含 =
的内容,因为它用作分隔符。您应该 运行 您的批处理文件使用以下命令:
call function.bat "blabla=" "argument2" "TEST.txt"
在 cmd 中,然后使用以下代码(~
修饰符)删除每个参数的双引号:
set "Var1=%~1"
set "Var2=%~2"
set "Var3=%~3"
echo %Var1% %Var2% %Var3%
它应该可以工作。建议采用这种方式作为最佳实践。永远这样做。
funtion.bat 回显变量
set "Var1=%1"
set "Var2=%2"
set "Var3=%3"
echo %Var1% %Var2% %Var3%
我使用了一个通过传递 3 个参数来调用此函数的批处理
call function.bat blabla= argument2 TEST.txt
如您所见,我的第一个论点中有一个等号。但我想将它用作字符串而不是运算符。
当我 运行 批处理时,这是我得到的结果:
blabla
argument2
TEST.txt
这是我想要的结果:
blabla=
argument2
TEST.txt
有人知道如何获得 "blabla=" 吗?
来自 cmd /?
在命令中:
The special characters that require quotes are:
<space>
&()[]{}^=;!'+,
~ `
如您所见,您应该引用 几乎所有包含 =
的内容,因为它用作分隔符。您应该 运行 您的批处理文件使用以下命令:
call function.bat "blabla=" "argument2" "TEST.txt"
在 cmd 中,然后使用以下代码(~
修饰符)删除每个参数的双引号:
set "Var1=%~1"
set "Var2=%~2"
set "Var3=%~3"
echo %Var1% %Var2% %Var3%
它应该可以工作。建议采用这种方式作为最佳实践。永远这样做。