【问题标题】:Batch-I want to set second part of variable批处理-我想设置变量的第二部分
【发布时间】:2016-04-02 23:28:01
【问题描述】:

我有问题。

set /p command=  
if %command% == "display (i want the second part of the variable here)" echo (second part of the variable)

例如,我输入:

display hello 

我希望它简单:

echo hello

我想在我的游戏中将它用于自定义命令。

【问题讨论】:

    标签: batch-file if-statement command


    【解决方案1】:

    首先,您可以使用"tokens=1*" 使用for /f 循环分割firstword|notfirstword 上的文本。详情请参阅控制台窗口中的help for

    接下来,您可以尝试使用call :label,其中:label 是第一个单词。本质上,您正在创建batch functions 并让用户选择执行哪个函数。如果函数标签不存在,则 errorlevel 将非零,您可以使用conditional execution 进行适当处理。这样可以轻松扩展脚本,而无需为您添加的每个选项或同义词添加 if /i 语句。 (通过重定向 2>NUL 来隐藏尝试 call 不存在的标签的错误消息可能是个好主意。)这是一个完整的示例:

    @echo off & setlocal
    
    :entry
    set /P "command=Command? "
    
    for /f "tokens=1*" %%I in ("%command%") do (
        2>NUL call :%%I %%J || (
            if errorlevel 1000 (exit /b 0) else call :unsupported %%I
        )
        goto :entry
    )
    
    :display
    :echo
    :say
    :show
    echo(%*
    exit /b 0
    
    :ping
    ping %~1
    exit /b 0
    
    :exit
    :quit
    :bye
    :die
    echo OK, toodles.
    exit /b 1000
    
    :unsupported <command>
    1>&2 echo %~1: unrecognized command
    exit /b 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      相关资源
      最近更新 更多