Board logo

标题: [系统相关] [已解决]批处理如何注销除当前会话ID之外的所有会话? [打印本页]

作者: mms0536    时间: 2012-9-4 00:37     标题: [已解决]批处理如何注销除当前会话ID之外的所有会话?

本帖最后由 mms0536 于 2012-9-22 12:09 编辑

服务器操作系统,会有很多用户远程到系统,每个用户在不同电脑远程也会产生新的会话id

写这个批处理的目的就是双击之后注销除当前会话id之外的所有其他会话

下面是我写的
一步一步来的
注销使用回显代替了
echo off
setlocal enabledelayedexpansion
query session >1.txt   
rem 这里是获取系统当前登录所有用户的信息
findstr ">" 1.txt >1111.txt
rem 这里是把当前用户隔离出来
for /f "tokens=3" %%i in (1111.txt) do set a=%%i & echo Being Used ID=!a!
这里是提取当前用户的id

echo kankan shi duo shao !a!
rem 这个纯粹是看看a是什么
for /l %%j in (1,1,3) do (if !a! neq %%j echo %%j+++!a!)
rem 循环三次,判断变量j和a是否相等,不相等就回显j的数值和a的数值

在红色字体部分,不管相不相等,都会执行后面的回显命令

执行结果
1+++1  
2+++1  
3+++1
感觉if判断没起作用,请各位大大看看是哪里出错了,百度了很久没找到相关资料,估计关键词没选好....
作者: apang    时间: 2012-9-4 07:14

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set a=Hello & echo "!a!"
  4. set a=Hello&echo "!a!"
  5. set "a=Hello" & echo "!a!"
  6. pause
复制代码

作者: mms0536    时间: 2012-9-4 11:50

apang 发表于 2012-9-4 07:14



    感谢,已经好了,非常感谢

贴出可以的代码
修改了红色部分,再次感谢
echo off
setlocal enabledelayedexpansion
query session >1.txt
findstr ">" 1.txt >1111.txt
for /f "tokens=3" %%i in (1111.txt) do set "a=%%i" & echo Being Used ID=!a!
echo start for cell
echo kankan shi duo shao !a!
for /l %%j in (1,1,3) do (if not !a!==%%j echo %%j+++!a!)




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2