代码
@echo off
:again
color 1a
setlocal EnableDelayedExpansion
cls
echo.
echo.
echo --------------------请选择要执行的操作--------------------
echo ----------1.删除指定的会话
echo ----------2.断开指定的会话
echo ----------3.注销会话中的用户
echo ----------4.结束会话中指定的进程
echo ----------5.退出程序
echo.
echo.
set /p num=请选择要执行的操作:
if "!num!"=="1" (
cls
echo 以下为当前登陆到终端服务器中的所有会话:
query session
set /p sessionid=请输入被删除会话的ID:
echo.
reset session !sessionid!
goto again
)
if "!num!"=="2" (
cls
echo 以下为当前登陆到终端服务器中的所有会话:
query session
set /p sessionid=请输入被断开会话的ID:
echo.
tsdiscon !sessionid!
goto again
)
if "!num!"=="3" (
cls
echo 以下为当前登陆到终端服务器中的所有会话:
query session
set /p sessionid=请输入要注销用户的会话ID:
echo.
logoff !sessionid!
goto again
)
if "!num!"=="4" (
cls
echo 以下为当前登陆到终端服务器中的所有会话:
query session
set /p sessionid=请输入被结束进程所在会话的ID:
echo.
echo !sessionid!会话所有的进程信息如下:
query process /id:!sessionid!
set /p processid=请输入要结束进程的PID值:
echo.
tskill !processid! /id:!sessionid!
goto again
)
echo.
echo 你输入了!num!字符,程序将自动退出!
set num=
set sessionid=
set processid=
附录
color ?
设置默认的控制台前景和背景颜色。
COLOR [attr]
attr 指定控制台输出的颜色属性。
颜色属性由两个十六进制数字指定 – 第一个对应于背景,第二个对应于前景。每个数字可以为以下任何值:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
如果没有给定任何参数,此命令会将颜色还原到 CMD.EXE 启动时的颜色。这个值来自当前控制台窗口、/T 命令行开关或 DefaultColor 注册表值。
如果尝试使用相同的前景和背景颜色来执行COLOR 命令,COLOR 命令会将 ERRORLEVEL 设置为 1。
示例: “COLOR fc” 在亮白色上产生淡红色
setlocal /?
开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后所做的环境改动只限于批处理文件。要还原原先的设置,必须执行 ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。
SETLOCAL
如果启用命令扩展,则 SETLOCAL 更改如下:
SETLOCAL 批命令现在可以接受可选参数:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
启用或禁用命令处理器扩展。这些
参数比 CMD /E:ON 或 /E:OFF
开关有优先权。请参阅 CMD /? 获取详细信息。
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
启用或禁用延缓环境变量
扩展。这些参数比 CMD
/V:ON 或 /V:OFF 开关有优先权。请参阅 CMD /? 获取详细信息。
无论在 SETLOCAL 命令之前的设置是什么,这些修改会一直
生效,直到出现相应的 ENDLOCAL 命令。
在给定参数的情况下,SETLOCAL 命令将设置 ERRORLEVEL 值。如果给定两个有效参数中的一个,另一个未给定,则该值为零。
通过以下方法,你可以在批脚本中使用此项来确定扩展是否可用:
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Unable to enable extensions
此方法之所以有效,是因为在 CMD.EXE 的旧版本上,SETLOCAL不设置 ERRORLEVEL 值。如果参数不正确,VERIFY 命令会将ERRORLEVEL 值初始化为非零值。
CLS
清除屏幕
echo.
中间没有空格,意思是创建一个空行
query session
列出当前登录到终端服务器中的所有会话。