如何修改批处理脚本,写入文件时仅保留服务器的活动会话?
如何筛选QUERY SESSION结果仅保留活动会话?
嘿,我来帮你搞定这个需求!你当前的脚本会把所有服务器的会话信息都写入文件,但想要只保留活动会话的话,咱们可以通过过滤QUERY SESSION的输出来实现,具体修改方案如下:
修改后的脚本
@ECHO OFF REM Delete previous output file del currentsessions.txt FOR /F "delims=," %%i IN (AXServers.txt) DO ( echo --- 服务器: %%i --- >> currentsessions.txt QUERY SESSION /SERVER:%%i | findstr /C:"Active" /V ">console" >> currentsessions.txt echo. >> currentsessions.txt REM 加入空行提升可读性 )
关键修改说明
- 标记服务器名称:我加了
echo --- 服务器: %%i ---这一行,这样每个服务器的会话结果都有明确的标识,不会混在一起 - 过滤活动会话:用
findstr /C:"Active"只保留包含Active(活动状态)的行,精准筛选出你需要的活动会话 - 可选过滤控制台会话:如果不需要服务器的控制台会话,可以保留
/V ">console"参数,它会排除掉控制台会话的行;要是需要保留控制台会话,删掉这个参数就行 - 适配中文系统:如果你的系统是中文环境,
QUERY SESSION输出的状态是活动,把脚本里的"Active"改成"活动"就可以正常工作啦
内容的提问来源于stack exchange,提问作者DaveWox
相关产品推荐
相关产品推荐

