|
FBOAR
初级用户
积分 86
发帖 31
注册 2007-1-9
状态 离线
|
『楼 主』:
请教eol=可否忽略多个?
我想忽略以;和s开头的行
eol=;,s 行不通
此句该如何写?
|
|
2007-1-16 00:26 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
|
2007-1-16 00:30 |
|
|
oilio
高级用户
前进者
积分 641
发帖 303
注册 2007-1-10
状态 离线
|
『第
3 楼』:
命令解释就是指定一个啊,没听说可以那样搞,如果有人那样能搞成功,还真的期待。。。。
|
我相信总有一天,总会遇到一个人可以相濡以沫、相吻以湿! |
|
2007-1-16 01:39 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
4 楼』:
假如要滤掉下面 A.TXT 文件中 “;” 和 “S” 开头的行内容:
;China
;Beijing
ShangHai
NanJing
;DaLian
HeBei
HeNan
中国
北京
上海
Quote: | @echo off
for /f "eol=;" %%a in ('for /f "eol=S" %%b in ^(a.txt^) do @echo %%b') do echo %%a |
|
分两次间接实现:(棕色)部分代码将滤掉 “S” 字母之后的字符串再次给它的调用者(黑色)部分代码。
而(黑色)部分代码 for 中的 eol 参数又会把 “;” 符号滤过,最后结果就等于间接实现了同时滤掉 “;” 和 “S” 这两个字符。
上面输出结果:
NanJing
HeBei
HeNan
中国
北京
上海 注: eol 参数区分字母的大小写
eol 参数可以滤掉一个中文汉字(它同样把一个汉字当做象英文字母一样的一个“字节”来看待)
[ Last edited by redtek on 2007-1-15 at 12:54 PM ]
此帖被 +17 点积分 点击查看详情 评分人:【 lxmxn 】 | 分数: +8 | 时间:2007-1-16 05:24 | 评分人:【 9527 】 | 分数: +5 | 时间:2007-1-16 05:47 | 评分人:【 FBOAR 】 | 分数: +1 | 时间:2007-1-16 06:24 | 评分人:【 oilio 】 | 分数: +1 | 时间:2007-1-16 09:18 | 评分人:【 luowei14 】 | 分数: +1 | 时间:2007-1-18 07:32 | 评分人:【 dosz 】 | 分数: +1 | 时间:2009-3-7 12:51 |
|
|
Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |
|
2007-1-16 01:53 |
|
|
9527
银牌会员
努力做坏人
积分 1185
发帖 438
注册 2006-8-28 来自 北京
状态 离线
|
|
2007-1-16 01:59 |
|
|
9527
银牌会员
努力做坏人
积分 1185
发帖 438
注册 2006-8-28 来自 北京
状态 离线
|
『第
6 楼』:
呵呵,redtek兄抢先了....当灌水了
[ Last edited by 9527 on 2007-1-16 at 02:02 AM ]
|
我今后在论坛的目标就是做个超级坏人!!! |
|
2007-1-16 02:00 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
|
2007-1-16 02:06 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
|
2007-1-16 05:07 |
|
|
Eblis
中级用户
积分 251
发帖 108
注册 2007-1-7 来自 湖南==>广州
状态 离线
|
『第
9 楼』:
lxmxn.高哇..这样可以忽略很多了...
|
DOS新人.多多指導 |
|
2007-1-16 13:50 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
10 楼』:
嘿嘿,批处理就是没有做不到,只有想不到。
|
|
2007-1-16 14:21 |
|
|
FBOAR
初级用户
积分 86
发帖 31
注册 2007-1-9
状态 离线
|
|
2007-1-17 01:21 |
|
|
luowei14
初级用户
积分 193
发帖 98
注册 2007-1-17
状态 离线
|
『第
12 楼』:
看来FOR 命令要多学学了 。。。
|
这家伙很聪明 什么都没留下 |
|
2007-1-18 07:39 |
|
|
beeny
初级用户
积分 136
发帖 49
注册 2007-1-4
状态 离线
|
『第
13 楼』:
[quote]Originally posted by lxmxn at 2007-1-15 04:07 PM:
可以变通一下,用findstr /v。我的a.txt文档:
忽略以"C"、"V"、"中"开始的所有行:
[code]
@echo off
(for /f "delims=" %%a in ('findstr /v "^C.* ^中.* ^V.*" a.txt') do (echo=%%a))&pause&exit/b 0
红色部分中^这个符号是什么意思,为什么要用这个符号?
|
|
2007-1-18 12:31 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
14 楼』:
^符号在findstr里面代表匹配一个字符串的开头,而$代表匹配一个字符串的结尾,具体说明请看findstr /?。
|
|
2007-1-18 13:51 |
|
|
oilio
高级用户
前进者
积分 641
发帖 303
注册 2007-1-10
状态 离线
|
『第
15 楼』:
lxmxn兄,我用过你说的方法,忽略以字符打头的行,我知道了。忽略以某某字符结尾的行,我没有试出来,不知道问题出在什么地方,看一下帮助命令,也没有发现什么。我是这样用的。忽略以“e,n,术”结尾的行
for /f "delims=" %a in ('findstr /v "$e.* $n.* $术.*" a.txt') do @echo %a
不知道错在什么地方,高手指点一下啊,在这儿谢过了。
|
我相信总有一天,总会遇到一个人可以相濡以沫、相吻以湿! |
|
2007-1-28 06:19 |
|