标题: [文本处理] 批处理如何获取find的行数,赋值给变量 [打印本页]
作者: alwenliu 时间: 2021-1-15 23:20 标题: 批处理如何获取find的行数,赋值给变量
比如a.txt里有三个进程号
7976
4456
6460
我用for循环读进来进行查询 netstat -ano | findstr %%p ;会得到几行数据,
我怎么统计有几行数据,并把行数赋值给一个变量呢- for /f %%p in (Pid.txt) do (
- netstat -ano | findstr %%p
- )
复制代码
图片显示对应的ID有4 行数据,我怎么计算是有4行数据,并把4赋值给一个变量.最好不要用临时文件的方法.新手向大神请教了
作者: 路过 时间: 2021-1-15 23:25
本帖最后由 路过 于 2021-1-15 23:31 编辑
- @echo off
- setlocal enabledelayedexpansion
- for /f %%p in (Pid.txt) do (set/a c=0
- for /f "delims=" %%a in ('netstat -ano ^| findstr %%p') do (set/a c+=1)
- echo;!c!
- )
- pause
复制代码
或者- @echo off
- setlocal enabledelayedexpansion
- for /f %%p in (Pid.txt) do (
- for /f "delims=" %%a in ('netstat -ano ^| findstr %%p ^| find /v /c ""') do (set c=%%a)
- echo;!c!
- )
- pause
复制代码
作者: alwenliu 时间: 2021-1-15 23:33
回复 2# 路过
十分感谢
作者: netdzb 时间: 2021-1-16 04:17
回复 2# 路过
搭车请教一下,如何做一个随机显示文本的内容。比如23行的文本,
随机显示其中一行,sleep一秒,然后随机显示下一行,按任意键退出。
批处理可以做到吗?
作者: 路过 时间: 2021-1-16 09:59
本帖最后由 路过 于 2021-1-16 10:06 编辑
回复 4# netdzb - @echo off
- pushd "%~sdp0"
- set filename=1.txt
- call :RanSTxt 1 %filename%
- ping/n 2 127.0>nul
- call :RanSTxt 1 %filename%
- pause
- exit
-
- :RanSTxt [sl] [file]
- ::sl最多显示多少行,file 文件名[不支持空格和特殊符号]
- setlocal enabledelayedexpansion
- set/a sl=%1
- set file=%2
- for /f %%a in ('type "%file%" ^| find /c /v ""') do (set al=%%a)
- set/a q=1+%random% %% %al%,w=q+sl,e=0
- for /f "skip=%q% delims=: tokens=1*" %%h in ('echo;^&findstr /in .* "%file%"') do (echo;%%i
- set/a e+=1
- if !e!==%sl% (endlocal&goto :eof))
- endlocal
- goto :eof
复制代码
作者: lancer 时间: 2021-1-16 10:43
回复 2# 路过
find /v /c “字符串”
这条命令的意思是不是代表不包含“字符串”的行数
作者: 路过 时间: 2021-1-16 11:11
回复 6# lancer
对
作者: lancer 时间: 2021-1-16 13:17
回复 7# 路过
/V 显示所有未包含指定字符串的行
/C 仅显示包含字符串的行数
说实话,单独看这2个参数的意思,真的很难联想到一起使用时是不包含指定字符串的行数。如果不是你的这个批处理,始终都无法理解。
作者: Batcher 时间: 2021-1-16 19:56
回复 2# 路过
也可以直接获取 findstr /n 的行号- @echo off
- setlocal enabledelayedexpansion
- for /f %%p in (Pid.txt) do (
- for /f "delims=:" %%a in ('netstat -ano ^| findstr /n %%p') do (
- set c=%%a
- )
- echo %%p --- !c!
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |