【问题标题】:How to open a program using user input如何使用用户输入打开程序
【发布时间】:2015-06-14 15:17:14
【问题描述】:

我正在编写一个程序,它会在用户输入时打开一个程序:“Open 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 所以用户键入的第一件事等于 Input,用户键入的第二件事等于 Input2,因此他们可以键入 Start Calc,代码将是: Start calc.exe 因为它在用户的第二个单词中添加了一个 .exe输入。

当你给我答案时,你能解释一下每个位的作用吗?

【问题讨论】:

标签: batch-file input


【解决方案1】:
@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

【讨论】:

  • 感谢它运行良好!但是即使我正确输入了某些程序也无法打开它们:/感谢您的帮助。
  • 当您输入open program 时,我的代码应该打开任何program.exe 文件,就像在命令行中输入start program.exe 一样(这就是您所要求的)。当这一点失败时,你能发布一个例子吗?
  • 我输入“打开 Steam”,但没有。大写是好的,即使它在“程序文件(x86)”中也没有打开......:/
  • ...当您键入“Start Steam.exe”时它是否正常工作?如果不是,那么问题是 not 在我的代码中...
  • 请问?这里有两点:1. 当您运行我的 code.bat 并键入“Open Steam”时,程序无法运行。好的,在这一点上。 2. 我让你从命令行输入“Start Steam.exe” 改为运行我的code.bat。为什么?因为我的 code.bat 只是将Open Steam 输入转换为Start Steam.exe 命令的执行(根据您的要求)。因此,为了让“Open Steam”在我的 code.bat 程序中运行,“Start Steam.exe”必须从命令行运行! “如果不是,那么问题是 not 在我的代码中”...
【解决方案2】:

我还没有实际测试过,但它应该可以工作。

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

【讨论】:

  • 感谢您的回复,但它刚刚关闭,所以我在最后添加了一个暂停,看看它是否提到了错误,但它没有。还是谢谢!
猜你喜欢
  • 2021-06-20
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
  • 2014-04-11
  • 2015-05-01
  • 2018-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多