标题: [系统相关] 批处理if语句的套用:如何根据用于输入结束指定进程 [打印本页]
作者: wei120195534 时间: 2009-4-26 14:35 标题: 批处理if语句的套用:如何根据用于输入结束指定进程
我自己写了一个批处理的工具,想完善下工具,就使用到IF语句的嵌套代码如下:
:begin
@echo 请选择你想要的操作
@echo -------------------1.输入数字1并按下回车,查看系统进程-------------------
@echo -------------------2.输入数字2并按下回车,查看系统用户-------------------
@echo -------------------3.输入数字3并按下回车,查看系统开放端口---------------
@echo -------------------4.输入数字4并按下回车,查看系统开放共享---------------
@echo -------------------5.输入其他字符并按下回车,终止本程序------------------
@echo.
@echo.
set /p num=
if "%num%"=="1" (
cls
@echo #########################################################################
@echo.
@echo DAVID多功能工具
@echo.
@echo #########################################################################
cls
tasklist
pause
goto begin
)
我想在tasklist 之后再加上一个判断“是否结束进程(Y/N)”的语句进行进一步处理
tasklist
set /p a=要结束进程吗?(Y/N)
if "%a%"=="y" goto kill
if "%a%"=="n" goto end
:kill
@echo.
@echo.
set /p pid=请输入要结束进程的PID值:
taskkill /pid "%pid%"
goto begin
:end
exit
问题是加了这句之后就出现不管按“Y”或者“N”都会询问“请输入要结束进程的PID值:
”
为什么会这样呢?是不是我没有释放变量??
作者: batman 时间: 2009-4-26 15:05
改成:
if /i "%a%"=="y" goto kill
if /i "%a%"=="n" goto end
作者: wei120195534 时间: 2009-4-26 18:33 标题: 回复 2楼 的帖子
还是不行,感觉怪怪的,要不我把全部代码都拿出来,拷贝回去看看
@echo off
:begin
cls
@echo #########################################################################
@echo.
@echo DAVID多功能工具
@echo.
@echo #########################################################################
@echo.
@echo.
@echo 请选择你想要的操作
@echo -------------------1.输入数字1并按下回车,查看系统进程-------------------
@echo -------------------2.输入数字2并按下回车,查看系统用户-------------------
@echo -------------------3.输入数字3并按下回车,查看系统开放端口---------------
@echo -------------------4.输入数字4并按下回车,查看系统开放共享---------------
@echo -------------------5.输入其他字符并按下回车,终止本程序------------------
@echo.
@echo.
set /p num=
if "%num%"=="1" (
cls
@echo #########################################################################
@echo.
@echo DAVID多功能工具
@echo.
@echo #########################################################################
cls
tasklist
set /p a=要结束进程吗?(Y/N)
if /i "%a%"=="y" goto kill
if /i "%a%"=="n" goto begin
)
if "%num%"=="2" (
cls
@echo #########################################################################
@echo.
@echo DAVID多功能工具
@echo.
@echo #########################################################################
net user
pause
goto begin
)
if "%num%"=="3" (
cls
@echo #########################################################################
@echo.
@echo DAVID多功能工具
@echo.
@echo #########################################################################
netstat -an
pause
goto begin
)
if "%num%"=="4" (
cls
@echo #########################################################################
@echo.
@echo DAVID多功能工具
@echo.
@echo #########################################################################
net share
pause
goto begin
)
:kill
@echo.
@echo.
set /p pid=请输入要结束进程的PID值:
taskkill /pid "%pid%"
goto begin
作者: 随风 时间: 2009-4-26 20:25
提问不要把你所有的代码都搬上来,应该把代码裁减到最短,否则谁都没有耐心去从那一片没有问题的代码挑出错误来
Q:所发代码不止一行时请用 code 把代码扩起来
A:如何用code把代码扩起来 ,请点我。
[ 本帖最后由 随风 于 2009-4-26 20:29 编辑 ]
作者: wei120195534 时间: 2009-4-26 21:15
复制代码
作者: Batcher 时间: 2009-4-26 21:34
- @echo off
- :begin
- cls
- echo #########################################################################
- echo.
- echo DAVID多功能工具
- echo.
- echo #########################################################################
- echo.
- echo.
- echo 请选择你想要的操作
- echo -------------------1.输入数字1并按下回车,查看系统进程-------------------
- echo -------------------2.输入数字2并按下回车,查看系统用户-------------------
- echo -------------------3.输入数字3并按下回车,查看系统开放端口---------------
- echo -------------------4.输入数字4并按下回车,查看系统开放共享---------------
- echo -------------------5.输入其他字符并按下回车,终止本程序------------------
- echo.
- echo.
- set /p num=
- if "%num%"=="1" (
- cls
- echo #########################################################################
- echo.
- echo DAVID多功能工具
- echo.
- echo #########################################################################
- cls
- tasklist
- set /p a=要结束进程吗?(Y/N)
- if /i "%a%"=="y" (
- goto :kill
- ) else if /i "%a%"=="n" (
- goto :begin
- )
- ) else if "%num%"=="2" (
- cls
- echo #########################################################################
- echo.
- echo DAVID多功能工具
- echo.
- echo #########################################################################
- net user
- pause
- goto :begin
- ) else if "%num%"=="3" (
- cls
- echo #########################################################################
- echo.
- echo DAVID多功能工具
- echo.
- echo #########################################################################
- netstat -an
- pause
- goto :begin
- ) else if "%num%"=="4" (
- cls
- echo #########################################################################
- echo.
- echo DAVID多功能工具
- echo.
- echo #########################################################################
- net share
- pause
- goto :begin
- )
- goto :eof
-
- :kill
- echo.
- echo.
- set /p pid=请输入要结束进程的PID值:
- taskkill /pid "%pid%"
- goto :begin
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |