批量文件在> 1输入后关闭

时间:2017-03-25 06:36:55

标签: batch-file

我对编程很新,但我过去做了很多Web开发。我对我的第一个程序有一点想法,它包含一个命令提示UI,询问你是否要关闭程序,关闭一些我个人不关心的后台任务。

到目前为止,这是代码:

:start
set /p "cho=>"
if %cho%==Y goto yes
if %cho%==y goto yes
if %cho%==n goto eof
if %cho%==N goto eof

:yes
echo If you need help type "hlp". If you don't type "cont". To close type 
"end"
set /p "yesInput=>"
if %yesInput%=hlp goto hlp
if %yesInput%=cont goto cont
if %yesInput%=end goto end

:hlp

TASKLIST
echo To Return type "cont"
set /p "hlpInput"
if %hlpInput%=cont goto cont
if else echo Error
:cont


:end
goto eof

编辑:后台任务是GoogleCrashHandler64和GoogleCrashHandler

1 个答案:

答案 0 :(得分:0)

if %yesInput%=hlp goto hlp

比较运算符为==,而非=(重复多次)

(顺便说一句 - if /i ...表示不区分大小写)

set /p "hlpInput"

将此与其他set /p命令进行比较。

if else echo Error

我认为你的意图是"否则"。如果先前的测试成功,执行将按照指示转移到标签。因此,如果我们重申这条指令,我们必须具备条件"否则"所以没有必要对它进行测试。

if非常简单。它不像case声明。从提示符,看看/?`是否有文档。一般格式是

if booleancondition (dothis)else(dothat)

只有在else条件或 dothis dothat 是多行指令时才需要括号(称为{{1} }})。此外,开场code block必须与(在同一物理线路上,且if必须全部位于一条物理线路上。

当您从键盘测试输入时,用户可以输入包含空格或逗号的字符串。因此,使用语法

更安全(但不是万无一失)
) else (

因为引号会将值解释为单个标记'

请注意批量siply连续执行指令,直到它到达if "string"=="another string" ... 或文件结尾(但它可以被goto转移)。标签只是标记 - 它们并不表示"程序结束"和其他一些语言一样。结果是,除非您插入特定的call指令,否则批处理只会通过标签进行处理并执行它找到的任何指令。

特殊指令goto将转到文件结尾。请注意,此处的冒号是必需