2015-06-14 54 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

感謝您的回覆,但它只是關閉,所以我在最後添加了一個暫停,看它是否提到了錯誤,但它沒有。不管怎麼說,還是要謝謝你! –

相關問題