【问题标题】:How to set cmd variables to values with on or off?如何将 cmd 变量设置为打开或关闭的值?
【发布时间】:2020-07-03 00:42:26
【问题描述】:

如何将 cmd 变量设置为值 onoff?这是交互式 cmd.exe 会话的输出:

c:\>echo %myvar%
%myvar%

c:\>set myvar=x

c:\>echo %myvar%
x

c:\>set myvar=on

c:\>echo %myvar%

c:\>set myvar=off

c:\>echo %myvar%

在最后一个命令之后,命令会话变得无响应,我需要手动关闭命令窗口。这些值onoff 是否具有特殊的权力? ONOFF 也有类似的效果,所以不区分大小写。

我能得到的最接近的是使用引号:

c:\>set myvar="on"

c:\>echo %myvar%
"on"

但是,这是不可接受的,因为变量包含引号字符。

【问题讨论】:

    标签: windows batch-file variables cmd


    【解决方案1】:

    onoff 本身就是有效的变量值。

    问题在于echo 将字符串onoff 作为参数来激活或停用在执行之前显示一行代码的cmd 功能。

    解决此问题的最简单方法是使用echo( 而不是echo

    set var=on
    echo(%var%
    

    解决这个问题的第二个最简单的方法是在echo 命令中添加任何附加字符串。从美学上讲,我建议使用退格字符 (ALT+08) 删除前一个字符,然后写入 onoff

    set var=on
    for /f %%a in ('"prompt;$H&for %%b in (0) do rem"') do set "BS=%%a"
    echo .%BS%%var%
    

    【讨论】:

    • 你也可以使用echo/...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多