Gra*_*bot 6 windows awk command-line
我需要对无法安装其他软件的客户端 PC 上的一些问题进行故障排除,并且需要awk
Windows xp 和 7 上的一些基本功能。
基本上,我需要从中剥离进程 ID,netstat
以便我可以在脚本的不同部分使用它,但不知道可以执行等效于awk '{ print $4 }'
. 有没有适合我的选择?显然,我对 windows cli 很陌生。
Den*_*nis 13
对于这样的基本任务,您可以使用for /f
.
代替
command | awk '{ print $4 }'
Run Code Online (Sandbox Code Playgroud)
尝试这个:
for /f "tokens=4" %a in ('command') do echo %a
Run Code Online (Sandbox Code Playgroud)
请注意,您必须使用%%a
而不是%a
在批处理文件中。
示例netstat -n -o
输出:
Active Connections
Proto Local Address Foreign Address State PID
TCP 127.0.0.1:12345 127.0.0.1:23456 ESTABLISHED 4321
TCP 127.0.0.1:34567 127.0.0.1:45678 ESTABLISHED 5432
Run Code Online (Sandbox Code Playgroud)
要去除前 2 行,将输出通过管道传输到findstr /v "Active Proto"
.
要仅打印特定列数据,例如本地地址和 PID,请使用:
for /f "tokens=2,5" %i in ('netstat -n -o ^| findstr /v "Active Proto"') do @echo Local Address = %i, PID = %j
Run Code Online (Sandbox Code Playgroud)
如果在批处理文件中使用,则必须将 % 符号加倍,并且可以将所需的值(%%i、%%j 等)分配给变量。
要获取进程 ID (PID):
tasklist /fi "imagename eq netstat.exe" > D:\test.txt
该命令将创建一个进程 ID 为 netstat 的新文本文件(如果 netstat 正在运行)。
问题是,该文件将不仅仅包含 PID。
也许这对你来说已经足够开始了?
归档时间: |
|
查看次数: |
68642 次 |
最近记录: |