批处理 - 我想设置变量的第二部分

时间:2016-04-02 23:28:02

标签: batch-file if-statement command

我有问题。

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

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

1 个答案:

答案 0 :(得分:2)

首先,您可以使用for /f将第一个字| notfirstword上的文字与"tokens=1*"循环分开。有关详细信息,请参阅控制台窗口中的help for

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

#!/usr/bin/ python
#import vincent
import tokens
#from collections import Counter
import json
import sys
import fileinput


lists=[]
for line in fileinput.input():
    tweet = json.loads(line)
    for term in tokens.preprocess(tweet['text']):
        if term.startswith('#'):
            print term