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

[系统相关] [已解决]批处理如何注销除当前会话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



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

贴出可以的代码
修改了红色部分,再次感谢
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!)

TOP

  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
复制代码

TOP

返回列表