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

[文本处理] 批处理BAT得到某列的值,该怎么做?在线等

比如输出:
映像名称                       PID 会话名                  会话#       内存使用
========================= ======== ================ =========== ============
System Idle Process       0                                 0         28 K
System                         4                                 0        320 K
csrss.exe                      348 RDP-Tcp#525         1      7,312 K
winlogon.exe                 5600 RDP-Tcp#525       1      5,276 K
rdpclip.exe                    3680 RDP-Tcp#525       1      1,568 K
explorer.exe                  2644 RDP-Tcp#525       1     12,460 K
logon.scr                      6896 Console                4        720 K
jucheck.exe                   6248                            0      4,276 K
jucheck.exe                   3328 RDP-Tcp#525       1        360 K
我想得到这样的值PID_映像名称_内存使用(但PID不包括“RDP-Tcp#525”这类),即是我想要这样的值:0_System Idle Process_28,3328_jucheck.exe_360

我写的脚本是这样:
  1. @echo off & setlocal enabledelayedexpansion
  2. echo {
  3. echo "data":[
  4. for /f "skip=3 tokens=1,2,5" %%i in ('tasklist') do (
  5.     if defined a echo {"{#ProcName}":"!a!"},
  6.     set "a=%%j_%%i_%%k"
  7. )
  8. echo,{"{#ProcName}":"!a!"}
  9. echo ]
  10. echo }
  11. pause
复制代码

  1. for /f "delims=, tokens=1,2,4*" %%i in ('tasklist /fo csv /nh') do (
  2.     if defined a echo {"{#ProcName}":"!a:~,-2!"},
  3.     set "a=%%~j_%%~i_%%~l"
  4. )
  5. echo,{"{#ProcName}":"!a:~-2!"}
复制代码
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

kankan o 专业的支持

TOP

返回列表