【问题标题】: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