【问题标题】:Batch use "=" as a string when passing argument传递参数时批量使用“=”作为字符串
【发布时间】:2019-08-07 08:14:15
【问题描述】:

function.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删除引号

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


【解决方案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%

它应该可以工作。建议使用此方法以获得最佳实践。一直这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多