我对编程很新,但我过去做了很多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
答案 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
将转到文件结尾。请注意,此处的冒号是必需。