传递参数时,批量使用“=”作为字符串

问题描述 投票:0回答:1

function.bat echo变量

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 =”?

string function batch-file operators parameter-passing
1个回答
1
投票

来自cmd的cmd /?

需要引号的特殊字符是: <space> &()[]{}^=;!'+,~`

如您所见,您应该引用几乎包含=的所有内容,因为它用作分隔符。您应该使用以下命令运行批处理文件:

call function.bat "blabla=" "argument2" "TEST.txt"

在cmd中,然后使用以下代码(~修饰符)删除每个参数的双引号:

set "Var1=%~1"
set "Var2=%~2"
set "Var3=%~3"

echo %Var1% %Var2% %Var3%

它应该工作。建议采用这种方式进行最佳实践。永远这样做。

© www.soinside.com 2019 - 2024. All rights reserved.