[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理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值:

为什么会这样呢?是不是我没有释放变量??

回复 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

TOP

  1. @echo off
  2. @echo 试试看
复制代码

TOP

返回列表