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

[文本处理] [已解决]批处理如何获取指定字符串的之前第n行的指定的内容?

[复制链接]
发表于 2012-9-25 02:01:50 | 显示全部楼层
skip=0 呢   当前长度: 系统限制:
发表于 2012-9-25 02:29:34 | 显示全部楼层
回复 16# terse


    嗯,forfiles 在 11楼弥补了这个考虑不周之处
 楼主| 发表于 2012-9-25 21:23:44 | 显示全部楼层
本帖最后由 cnswb 于 2012-9-25 21:26 编辑

回复 13# forfiles

不好意思 昨天有急事儿,没打招呼就慌乱的下线了
去掉@echo off这样的:
D:\桌面\新建文件夹>for /F "delims=:" %a in ('findstr /nc:"Enabling public" a.txt
') do set /a linenum=%a-6

D:\桌面\新建文件夹>set /a linenum=6-6

D:\桌面\新建文件夹>set "skip=skip=0"

D:\桌面\新建文件夹>for /F "skip=0 tokens=1* delims=: " %a in (a.txt) do echo %b
& pause & exit
此时不应有  tokens=1* delims=: "。

测试了一下,把那个 字符串 往下换了几行 就可以找到相应的地方了,不知道什么原因

terse的那个倒是可以,但是不知道为什么输出之后尾部都会多一个空格符号
发表于 2012-9-25 22:13:26 | 显示全部楼层
回复 18# cnswb
我16楼已经说了 SKIP=0 的时候是出错的啊 也就是值必须大于0
至于空格 具体是什么情况
 楼主| 发表于 2012-9-25 22:22:49 | 显示全部楼层
回复 19# terse


比如我把结果 > 1.log  发现行尾有空格,后来看 其他几个也有空格,不知道是怎么回事
发表于 2012-9-25 22:37:50 | 显示全部楼层
回复 20# cnswb


@echo off
for /f "tokens=1* delims=:" %%i in ('findstr /inc:"Enabling public" 测试.txt') do set /a N=%%i-5
for /f "tokens=1,2* delims=: " %%i in ('findstr /in ".*" "测试.txt"') do if %%i equ %N% set str=%%k&goto end
:end
>1.log echo %str%
pause
 楼主| 发表于 2012-9-25 23:11:49 | 显示全部楼层
本帖最后由 cnswb 于 2012-9-25 23:14 编辑

回复 21# forfiles

呵呵 可以了 多谢,不知道原因是什么! 这个名字要带入下一个命令中使用的,在下一个命令中,直接引用 不知道还会不会有空格了
还要自己多学习了

这里的高人,都比较热心,!!等我吧做完的完整批处理给大家看吧!
发表于 2012-9-25 23:18:34 | 显示全部楼层
回复 22# cnswb


    试试就知道了,没有问题。你写入文件的时候有空格是因为你的重定向符号前面多了空格,比如 echo xxx >1.log
 楼主| 发表于 2012-9-25 23:25:18 | 显示全部楼层
回复 23# forfiles


果然是重定向时的问题!!!多谢您的耐心解释!!
发表于 2017-3-25 09:58:37 | 显示全部楼层
win7及以上系统运行
  1. powershell "(gc '文本.txt'|select-string '\bEnabling public\b' -context 5,1).Context.PreContext[0].split(':')[1]"
  2. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 12:53 , Processed in 0.016806 second(s), 6 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表