我正在编写一个程序,当用户键入时打开一个程序:“打开chrome”然后它将打开chrome。我有这个:
SET /P Start=What should i do?
IF /i "%start%"==" open calculator" GOTO CALCULATOR
:CALCULATOR
Start C:\windows\system32\calc.exe
所以在计算器上启动程序计算器。 但我希望用户输入“打开”,代码知道“打开”=“开始”,接下来的是它必须打开的内容。
因此代码会分解用户键入的内容,因此如果他们输入“Open”,那么它会将其转换为start并将其放入代码中:
set /p "Input= "
%Input% + %Input2.exe
所以用户输入的第一件事就是输入,用户输入的第二件事就是输入2,所以他们可以输入Start Calc,代码将是:启动calc.exe,因为它在用户的第二个单词中添加了一个.exe类型。
当你给我一个答案时,你能解释一下每个位的作用吗?
答案 0 :(得分:0)
我实际上没有对此进行测试,但它应该有效。
for /F %%a in (%input%) do (
if %%a == "open" (
if %%b == "chrome" (
REM Do stuff
)
if %%b == "calculator" (
REM Do other stuff
)
)
)
答案 1 :(得分: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