Board logo

标题: [文本处理] 批处理BAT得到某列的值,该怎么做?在线等 [打印本页]

作者: hello163commail    时间: 2014-4-2 23:32     标题: 批处理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
复制代码

作者: xxpinqz    时间: 2014-4-3 01:57

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

作者: youbatty    时间: 2014-4-3 12:28

kankan o 专业的支持




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