2015-06-14 48 views
1

我正在编写一个程序,当用户输入时打开一个程序:“打开chrome”,然后打开chrome。我有这样的:如何使用用户输入打开程序

SET /P Start=What should i do? IF /i "%start%"==" open calculator" GOTO CALCULATOR

:CALCULATOR Start C:\windows\system32\calc.exe

因此,在计算器启动程序的计算器。 但我希望用户输入“打开”,代码知道“打开”=“开始”,接下来的任何内容都是必须打开的。

因此,代码需要开什么,使用户的类型,如果他们输入“打开”,然后它变成是为开始,并把它的代码,以便: set /p "Input= " %Input% + %Input2.exe 所以第一件事就是用户在平等输入和用户输入的第二件事等于Input2,以便他们可以键入Start Calc,代码将为:启动calc.exe,因为它在用户输入的第二个单词中添加了一个.exe文件。

当你请给我一个答案,你可以解释一下每一点做什么?

+0

我觉得你的问题是similair这个==> http://stackoverflow.com/questions/30823681/how-to-check-and-correct-user-input-when-he- omit-the-extension-exe-to-kill -30828097#30828097 – Hackoo

回答

0
@echo off 
setlocal 

:nextCommand 
echo/ 
set /P "input=What should I do? " 

if /I "%input%" equ "exit" (
    echo Bye... 
    exit /B 
) 

rem Try to change "open" by "start" in the input line 
set "changed=%input:open=start%" 

rem Check if the input changed 
if "%changed%" equ "%input%" (
    echo I don't know how to %input% 
    goto nextCommand 
) 

rem Execute the changed line adding ".exe" at end 
%changed%.exe 
echo Done! 
goto nextCommand 
+0

感谢它运作良好!但一些程序不会打开,即使我输入正确:/感谢您的帮助。 –

+0

当你输入'open program'时,我的代码应该打开任何'program.exe'文件,就像在命令行中输入'start program.exe'一样(这就是你所要求的)。当这一点失败时,你能举一个例子吗? – Aacini

+0

我输入“Open Steam”,但没有。尽管它在'Program Files(x86)'中并没有打开...:/ –

0

我没有真正测试过这个,但它应该可以工作。

for /F %%a in (%input%) do (
if %%a == "open" (
    if %%b == "chrome" (
    REM Do stuff 
) 
    if %%b == "calculator" (
    REM Do other stuff 
) 
) 
) 
+0

感谢您的回复,但它只是关闭,所以我在最后添加了一个暂停,看它是否提到了错误,但它没有。不管怎么说,还是要谢谢你! –

相关问题