标题: [注册表类] findstr 如何查找出长度满足指定字符个数的行? [打印本页]
作者: freesoft00 时间: 2016-2-2 21:59 标题: findstr 如何查找出长度满足指定字符个数的行?
本帖最后由 pcl_test 于 2016-2-3 00:20 编辑
比如结果最少是20个字符,数字和字母组合,还有多的,但是只想显示20个字符的,应该如何写关键字呢。
findstr /i ".................."这样写吗?
应该是不对的,因为这样过滤后还是全部显示了。- @echo off
- for /f "tokens=2*" %%i in ('2^>nul reg query HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices /v "\DosDevices*"') do (
- reg query HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices|findstr /i "%%j"
- )
- pause
复制代码
过滤后提示findstr 内存不足,是过滤的字符太长了吗
作者: bailong360 时间: 2016-2-2 22:07
- findstr "^....................$" test.txt
复制代码
作者: freesoft00 时间: 2016-2-2 22:08
回复 2# bailong360
好的,谢谢!
你看我写了代码,过滤的时候提示findstr :内存不足是什么原因。
作者: WHY 时间: 2016-2-2 22:52
确实是过滤的字符串太长了。
可以考虑用 set 截取字符串,比如要匹配20字符的字符串,判断21位以后为空,第20位非空
举例:- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=2*" %%i in ('2^>nul reg query HKLM\SYSTEM\MountedDevices /v "\DosDevices*"') do (
- set "s=%%j"
- if "!s:~20!" == "" if not "!s:~19,1!" == "" echo !s!
- )
- pause
复制代码
作者: freesoft00 时间: 2016-2-2 23:43
回复 4# WHY
哦,好的,谢谢!
如果把findstr换为find是不是没有这个字符限制?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |