2017-05-26 25 views
0

所以,在我的批处理文件,如果我想有这样一个输入作为如果字符串文本,请使用其他文本字符串来设置一个新的字符串 - 批处理文件

set /p command="Enter command here: " 

我想打一个命令设置一个名字,所以

if /i "%command%" =="name Bob" 

我想先看看它是否包含命令,然后,如果是的话,使用输入后,要设置的名称,如

set /p command="Enter command here: " 
if /i "%command%" =="name Bob" goto :nameset (Line I'm having trouble with) 
:nameset 
set name=%nameinput% 

我希望%nameinput%字符串等于Bob,这是尝试运行name命令时给出的值。感谢您的帮助。

+0

在您的例子,如果你使用'为/ F“令牌= 1,2” %%一in(“%command%”)do ...',那么'%% a'是'name','%% b'是'Bob',所以只需在'if'中使用'%% a'部分,'set'中的'%% b'部分。 – Aacini

回答

0

使用for /f将您的命令拆分为第一个单词并休息。
如果第一个单词(%% a)等于您的命令,则将该变量设置为%%b(其余部分)。或者使用"tokens=1,2"设置为第二个字(忽略的(可能)以下的字或词):

set /p command="Enter command here: " 
for /f "tokens=1,*" %%a in ("%command%") do (
    if /i "%%a" == "name" set "%%a=%%b" 
) 
echo %name% 
相关问题