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

时间:2019-03-16 11:39:25

标签: string function batch-file operators parameter-passing

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 =“吗?

1 个答案:

答案 0 :(得分:1)

cmd /?的cmd中开始:

  

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

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

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

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

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

echo %Var1% %Var2% %Var3%

,它应该可以工作。建议采用这种方法进行最佳实践。总是这样做。