Board logo

标题: [文本处理] [已解决]批处理怎样删除文本中的指定字符串? [打印本页]

作者: batpro    时间: 2011-6-5 16:28     标题: [已解决]批处理怎样删除文本中的指定字符串?

本帖最后由 batpro 于 2011-6-7 00:35 编辑

下列为中毒后系统中病毒的注册表项:
文本1.txt的内容为:
[<{AB900155-F1F0-4165-9E73-67BC13BBCE89}>] <C:\WINDOWS\system32\xg4hAPNygs29.dll>   
[<{FCA4D3BE-C6C7-4F4D-9CBD-CB2666647ACA}>] <C:\WINDOWS\system32\EN7hzSreCat8.dll>   
[<{EBFD50DA-1206-4381-860D-77F92A2905D9}>] <C:\WINDOWS\system32\P2xnxaS5acXpS95.dll>   
[<{480F828B-3E98-426A-AEBC-B4307DF4771D}>] <C:\WINDOWS\system32\kSVHjMeWr5ZZY47.dll>   
[<{750DBD56-AF03-47CB-BB28-BBF312B059F9}>] <C:\WINDOWS\fonts\xbpCfXnG6wUVF.fon>   
希望生成 2.txt
文本2的内容:
<C:\WINDOWS\system32\xg4hAPNygs29.dll>
<C:\WINDOWS\system32\EN7hzSreCat8.dll>   
<C:\WINDOWS\system32\P2xnxaS5acXpS95.dll>  
<C:\WINDOWS\system32\kSVHjMeWr5ZZY47.dll>  
<C:\WINDOWS\fonts\xbpCfXnG6wUVF.fon>
作者: mxxcgzxxx    时间: 2011-6-5 16:32

本帖最后由 mxxcgzxxx 于 2011-6-5 18:00 编辑
  1. cd.>2.txt
  2. for /f "tokens=1,2 delims=]" %%i in (1.txt) do echo %%j>>2.txt
复制代码
少写了一个do,现在可以了
作者: batpro    时间: 2011-6-5 16:41

2# mxxcgzxxx


无效代码
作者: chenqldiy    时间: 2011-6-5 18:21

本帖最后由 chenqldiy 于 2011-6-5 18:23 编辑
  1. @echo off
  2. for /f "tokens=2" %%i in (1.txt) do echo %%i>>2.txt
复制代码

作者: batpro    时间: 2011-6-5 21:27

4# chenqldiy

已解决 谢谢

能不能讲解一下,我是新人
作者: Batcher    时间: 2011-6-5 21:29

5# batpro


可以先阅读下for命令的教程:批处理for命令从入门到精通以及配套练习题
http://bbs.bathome.net/thread-2189-1-1.html
http://bbs.bathome.net/thread-2336-1-1.html
作者: batpro    时间: 2011-6-5 21:35

2# mxxcgzxxx

我是新人 ,请讲解一下思路
你在代码是不是这个意思:
(1)将1.txt中所有行分为部分1和部分2
(2)以]为分隔符
(3)%%i=部分1;%%j=部分2
(4)将部分2输出到2.txt中
作者: Batcher    时间: 2011-6-5 21:35

  1. sed "s/[^ ]* //" a.txt | more >b.txt
复制代码
  1. gawk "{print $2}" a.txt | more >b.txt
复制代码
  1. gawk "$0=$2" a.txt | more >b.txt
复制代码
  1. perl -lane "print $F[-1]" a.txt >b.txt
复制代码

作者: Batcher    时间: 2011-6-7 01:13

7# batpro


对,for命令基本上就是这样执行的。
作者: applba    时间: 2011-6-7 02:22

字符窜增强扩展和for /f 是批处理里面文字处理的必备技能》




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2