中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 09:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 截取指定行之后的字符 查看 744 回复 4
楼 主 截取指定行之后的字符 发表于 2009-09-04 04:10 ·  中国 湖北 宜昌 电信
初级用户
积分 30
发帖 26
注册 2006-10-25 12:39
19年会员
UID 68219
性别 男
状态 离线
帮忙看一下,怎么这个BAT执行不了。
set path1=d:\凡人修仙传.txt
set /p hang1=
set /a hang1=%hang1%-1
for /f "skip=%hang1% delims=: tokens=1,2*" %%a in ('findstr /n ".*" %path1%') do echo %%b >>更新.txt

[ Last edited by yqadsq1314 on 2009-9-4 at 13:22 ]
2 发表于 2009-09-04 04:55 ·  中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
在for /f中skip的值不能为0,即不能是小于1的整数

如果你需要=0的情况,可以这样做:

set path1=d:\凡人修仙传.txt
set /p hang1=
set /a hang1=%hang1%-1
if %hang1% lss 1 (
for /f "delims=: tokens=1,2*" %%a in ('findstr /n ".*" %path1%') do echo %%b
) else (
for /f "skip=%hang1% delims=: tokens=1,2*" %%a in ('findstr /n ".*" %path1%') do echo %%b
>>更新.txt


[ Last edited by Hanyeguxing on 2009-9-4 at 05:57 ]
3 发表于 2009-09-04 07:33 ·  中国 湖北 宜昌 电信
初级用户
积分 30
发帖 26
注册 2006-10-25 12:39
19年会员
UID 68219
性别 男
状态 离线
谢谢你的热心回复和建议。

我又换个了小点的文件(15000多行)可以正常执行,但是上面的仍执行不了,不知道什么原因(可能机器太差劲)
原来那个50000多行。手动太费劲了,有没有别的方法来实现。

[ Last edited by yqadsq1314 on 2009-9-4 at 07:36 ]
4 发表于 2009-09-04 07:37 ·  中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
具体说一下你要做什么
从你在1楼中给出的代码,我看不出来你具体要做什么
5 发表于 2009-09-04 13:16 ·  中国 湖北 宜昌 电信
初级用户
积分 30
发帖 26
注册 2006-10-25 12:39
19年会员
UID 68219
性别 男
状态 离线
我想下载凡人修仙更新的章节也就是截取指定行后面行到新的文本。
上面代码我机器执行不了,我想看看有没有其他办法。

[ Last edited by yqadsq1314 on 2009-9-4 at 13:21 ]
论坛跳转: