中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 07:32
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]如何去掉文本前两行,要求保留空格
可打印版本  1,026 / 14
第1楼 HUNRYBECKY 发表于 2008-07-24 22:23
银牌会员 发帖 442 积分 1,179
[求助]如何去掉文本前两行,要求保留空格
我有一个注册表如下:
?
cls
REGEDIT4

;SETUPPATH;D:\\OFFICE2003
[HKEY_CLASSES_ROOT\Installer\Products\4080110900063D11C8EF10054038389C]
"ProductName"="Microsoft Office Professional Edition 2003"
现在的问题是我要去掉前两行的?和cls,我使用下面的批处理
for /f "skip=2 tokens=1,2 delims=:" %%a in ('findstr /n ".*" "%ravel%"') do (if "%%b"=="" (echo.>>"%crackfile%") else (echo %%b>>"%crackfile%"))
虽然能输出空行,但是如果文本中有:的话也会被忽略掉后面的部分,如何解决。在线等待。。。。。。。。。。
第2楼 lxmxn 发表于 2008-07-24 22:25
版主 发帖 4,938 积分 11,386
tokens=1-2*
第3楼 HUNRYBECKY 发表于 2008-07-24 22:31
银牌会员 发帖 442 积分 1,179
问题解决,如下
rem for /f "skip=2 tokens=1,2 delims=:" %%a in ('findstr /n ".*" "%ravel%"') do (if "%%b"=="" (echo.>>"%crackfile%") else (echo %%b>>"%crackfile%"))
for /f "delims=" %%a in ('findstr /n .* "%ravel%"') do (
set str=%%a
setlocal enabledelayedexpansion
set str=!str:*:=!
echo.!str!>>"%crackfile%"
endlocal
)


不知道有没有更好的方法。
第4楼 HUNRYBECKY 发表于 2008-07-24 22:31
银牌会员 发帖 442 积分 1,179
好久没有见到兄弟了。哈哈。能否清楚点?我试过好象不行。能否把代码发出来。
第5楼 obsolete 发表于 2008-07-24 22:38
初级用户 发帖 72 积分 192
第6楼 lxmxn 发表于 2008-07-24 22:41
版主 发帖 4,938 积分 11,386
直接在命令行执行下面的试试:
第7楼 lxmxn 发表于 2008-07-24 22:43
版主 发帖 4,938 积分 11,386
看来我慢了一步哈 ^_^

我也好久没看见兄了啊,在忙什么呢?
第8楼 HUNRYBECKY 发表于 2008-07-24 22:45
银牌会员 发帖 442 积分 1,179
echo.%%b 这个东西好,我原来使用IF....ELSE 判断,没有达到效果。谢谢obsolete兄弟,非常满足要求。

for /f "skip=2 tokens=1,* delims=:" %%a in ('findstr /n .* "%ravel%"') do (if "%%b"=="" (echo.>>"%crackfile%") else (echo %%b>>"%crackfile%"))
这样也可以,我只是把tokens=1,* 搞成tokens=2,* ,呵呵,所以老是出来错误。

[ Last edited by HUNRYBECKY on 2008-7-24 at 10:51 PM ]
第9楼 HUNRYBECKY 发表于 2008-07-24 22:57
银牌会员 发帖 442 积分 1,179
回L兄,最近整理关于加密解密的帖子,在前辈的基础上做了很多修改,这个批处理基本上可以解密所有的文本加密了。感觉还是 copy nul+%ravel% "%crackfile%"命令最简单方便。
下面整理完成了解密的帖子。


[ Last edited by HUNRYBECKY on 2008-7-24 at 11:00 PM ]
第10楼 fastslz 发表于 2008-07-24 23:02
铂金会员 发帖 2,315 积分 5,493 来自 上海
都复杂化了^_^
第11楼 HUNRYBECKY 发表于 2008-07-24 23:07
银牌会员 发帖 442 积分 1,179
对了。for /f "skip=2 tokens=1* delims=: eol=~" %a in ('findstr /n .* your_reg_file') do @echo.%b>>result.txt
测试还是发现问题,如果批处理中有以冒号开头如“:start”则结果会把冒号“:”过滤掉。使用三楼的方法则不会过滤。不知道有没有解决方法,估计是使用findstr /n加行号后本身就有:所引起的。

[ Last edited by HUNRYBECKY on 2008-7-24 at 11:27 PM ]
第12楼 HUNRYBECKY 发表于 2008-07-24 23:11
银牌会员 发帖 442 积分 1,179
more +2 input.txt>result.txt
兄弟的方法通不过,如果使用DEBUG加密的话输出的是空文本
第13楼 HAT 发表于 2008-07-25 12:09
版主 发帖 5,017 积分 9,023
凑热闹


sed.exe
http://upload.cn-dos.net/img/561.zip
第14楼 yishanju 发表于 2008-07-25 12:50
银牌会员 发帖 1,357 积分 1,488
sed 处理文本很好玩,我昨天刚学的SED 然后就把一千多个文本给处理出来了
我装的gnu sed 4.1.5
第15楼 HUNRYBECKY 发表于 2008-07-30 08:38
银牌会员 发帖 442 积分 1,179
SEd 是个好工具。简单方便。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023