带有转义字符参数的批处理文件^

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

我正在尝试使用如下密码调用批处理脚本:

ABC^=abc

不幸的是,我所有的尝试都以以下结果结束:

ABC=abc

“^”字符被省略,我不知道如何强制在脚本中使用此字符读取参数。

我有代码行(其中 PASS 是带有密码的文件本地化):

:get_pass
    set PASS=%~1
    set USR=%~2
    set passwd=

    for /f "tokens=1,2 delims= " %%a in (%PASS%) do (
      if %%a==%USR% (
        set "passwd=%%b"
      )
    )

我在命令行中调用这个函数:

    call script.cmd get_pass C:\Doc\pass.ini USR do set passwd=%%i
    echo %passwd%
    -> ABC=abc

结果始终没有 ^ 字符。我尝试过在参数周围使用双引号的不同组合,例如:“passwd = %% b”,passwd =“%% b”,但它不起作用。

我将非常感谢您的帮助!

谢谢, 卡米尔

windows batch-file escaping
1个回答
0
投票

正确的值已存储在变量中,但您的

echo %passwd%
是问题所在。

您可以通过

查看该值
set passwd

并使用延迟扩展的值来代替

setlocal EnableDelayedExpansion
echo !passwd!
© www.soinside.com 2019 - 2024. All rights reserved.