Board logo

标题: [文本处理] [已解决]批处理怎样删除字符并换行以及删除空行? [打印本页]

作者: wh1234567    时间: 2011-4-28 21:56     标题: [已解决]批处理怎样删除字符并换行以及删除空行?

下面这个代码如何修改?
  1. @echo off
  2. (for /f "delims=" %%a in (1.txt) do (
  3. set "str=%%a"
  4. setlocal enabledelayedexpansion
  5. for %%b in ("!str:、=" "!") do endlocal&echo;%%~b
  6. ))>2.txt
复制代码
因为在xls表格里复制出来的内容到txt文本里,所以想处理一下,批处理删除字符并换行以及删除空行最后输出
文本例如:
省份        城市        县级市                                                                                                                       
北京市        北京市        门头沟区        房山区        顺义区        通州区        昌平区        密云县        延庆县        大兴县        怀柔县        平谷县                                               
上海市        上海市        闵行区        浦东新区        南汇县        奉贤区        金山区        松江区        青浦区        嘉定区        宝山区        崇明县                                               
天津市        天津市        西青区        塘沽区        北辰区        汉沽区        大港区        东丽区        津南区        蓟县        武清县        宁河县        宝坻县        静海县                               
重庆市        重庆市        南岸区        北碚区        江北区        渝北区        沙坪坝区        九龙坡区        万盛区        巴南区        渝中区        大渡口区        双桥区        万州区        涪陵区        永川市        合川市        江津市
福建        福州市        长乐市        福清市        闽侯县        平潭县        连江县        罗源县        永泰县        闽清县                                                               
        厦门市                                                                                                                               
        三明市        永安市        明溪县        将乐县        大田县        宁化县        建宁县        沙县        尤溪县        清流县        泰宁县                                               
        莆田市        仙游县                                                                                                                       
        泉州市        石狮市        晋江市        南安市        惠安县        安溪县        德化县        永春县                                       
        龙岩市        漳平市        长汀县        武平县        永定县        上杭县        连城县                                                                               
        宁德市        福安市        福鼎市        寿宁县        霞浦县        柘荣县        屏南县        古田县        周宁县                                                               
内蒙古        呼和浩特市        土默特左旗        托克托县        和林格尔县        清水河县        武川县                                                                                       
        包头市        土默特右旗        固阳县        达尔罕茂明安联合旗       

要求删除“        ”可能是空格,换行并删除空行,最后输出,整理后例如:
省份
城市
县级市                                                                                                       
北京市
北京市
。。。
作者: batman    时间: 2011-4-28 22:16

因为在xls表格里复制出来的内容到txt文本里,所以想处理一下

楼主的因果关系学得真好,同时你的描述估计也只有你自己懂。。。
作者: batman    时间: 2011-4-28 22:26

3# 你小相公
论坛有for的教程,同时,可以看看这个贴子:
http://www.bathome.net/viewthrea ... light=goto%2Bbatman
作者: Batcher    时间: 2011-4-28 22:36

删除哪些字符?
“并换行”是什么意思?
作者: wh1234567    时间: 2011-4-28 22:50

5# Batcher
删除好像是空格和空行,另外能不能同时删除多个字符?
作者: batman    时间: 2011-4-28 23:18

以后贴文本请用code括一下,好乱:
  1. @echo off
  2. (for /f "delims=" %%a in (a.txt) do for %%b in (%%a) do echo %%b)>$
  3. move $ a.txt
  4. start a.txt
复制代码

作者: batman    时间: 2011-4-28 23:19

感叹:一个二级士官连这最基础的for语句都不知道?
作者: CrLf    时间: 2011-4-28 23:21

本帖最后由 zm900612 于 2011-4-28 23:28 编辑

“删除好像是空格和空行”?这句没有宾语了?楼主的表述真是让人迷糊...
  1. @echo off
  2. (for /f "delims=" %%a in (1.txt) do (
  3.    for %%b in (%%a) do echo %%b
  4. ))>2.txt
复制代码

作者: batman    时间: 2011-4-28 23:25

9# zm900612
这样能正确出结果?
作者: CrLf    时间: 2011-4-28 23:29

10# batman


漏了delims...另外,如果文本中存在特殊字符会出错,但从楼主给出的范例看来似乎没有这样的字符,而且也未说明文本是什么格式,所以在此均不考虑特殊情况
作者: wh1234567    时间: 2011-4-29 00:45

能不能同时删除多个字符并换行?例如文本内容:
不管不顾,大幅度。地方?
反对反对 哎
处理结果为:
不管不顾
大幅度
地方
反对反对

作者: hanyeguxing    时间: 2011-4-29 08:33

12# wh1234567


以7楼代码为例:
1,默认以英文分号,逗号、空格、tab制符、等号为分隔
2,楼主可以根据需要增加中文 , 。 ? 等为分隔
3,忽略以上未提到的英文敏感字符的问题
  1. @echo off&setlocal enableDelayedExpansion
  2. (for /f "delims=" %%a in (a.txt) do (
  3. set "a=%%a"
  4. for %%b in (, 。 ?) do set "a=!a:%%b= !"
  5. for %%b in (!a!) do echo;%%b
  6. ))>$
  7. move $ a.txt
  8. start a.txt
复制代码

作者: batman    时间: 2011-4-29 08:51

楼主明显的伸手党,从最近发的n贴来看,摆明了连最基础的东西都没有去看,这样的贴子以后少回了。。。
作者: Hello123World    时间: 2011-4-29 10:41

所谓教学相长,他不学是他的事,我们回答是我们的事




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