标题: [文本处理] [已解决]批处理如何提取含有指定字符串但不包含小数点"."的行 [打印本页]
作者: fulijung 时间: 2015-1-22 21:42 标题: [已解决]批处理如何提取含有指定字符串但不包含小数点"."的行
本帖最后由 pcl_test 于 2016-11-26 02:39 编辑
002.txt文本如下,要求只提取包含“<DIR>”但不包括有“.” 的行
ftp> pwd
257 "/fulijungaa/web/加工部各课文件/生管组/正常订单放置区" is current directory.
01-18-15 04:30PM <DIR> .
01-18-15 04:30PM <DIR> ..
01-18-15 04:30PM <DIR> hzm10509
01-18-15 09:20AM <DIR> trd 12345
01-18-15 09:20AM 158444 wd0123456.prt.23
226 Transfer complete.
257 "/fulijungaa/web/加工部各课文件/生管组/本部订单放置区" is current directory.
01-18-15 04:30PM <DIR> .
01-18-15 04:30PM <DIR> ..
01-18-15 04:30PM <DIR> np11412
01-18-15 09:20AM <DIR> 修模 12345
01-18-15 09:20AM 158395 no12445.prt.20
ftp> pwd
257 "/fulijungaa/web/加工部各课文件/生管组/承接订单放置区" is current directory.
01-18-15 04:30PM <DIR> .
01-18-15 04:30PM <DIR> ..
01-18-15 04:30PM <DIR> aaz20118806
01-18-15 09:20AM <DIR> 设变订单 888
01-18-15 09:20AM 158395 adf006.prt.15
226 Transfer complete.
ftp> bye
处理成如下内容
01-18-15 04:30PM <DIR> hzm10509
01-18-15 09:20AM <DIR> trd 12345
01-18-15 04:30PM <DIR> np11412
01-18-15 09:20AM <DIR> 修模 12345
01-18-15 04:30PM <DIR> aaz20118806
01-18-15 09:20AM <DIR> 设变订单 888
下面代码无法运行啊,是不是要用什么转义符呢?
@echo off
for /f %%i in ('findstr /v " . .. " 002.txt | findstr "<DIR>" ' ) do (
echo %%i
)
作者: Batcher 时间: 2015-1-22 21:46
@echo off
for /f %%i in ('findstr /v " . .. " 002.txt ^| findstr "<DIR>" ' ) do (
echo %%i
)
作者: ak47b21b21 时间: 2015-1-22 22:01
@echo off
for /f %%i in ('findstr /v " . .. " 002.txt ^| findstr "" ' ) do (
echo %%i
)
Batcher 发表于 2015-1-22 21:46
BATCHER 俺是蝗虫 这么写可是达不到效果的。。FINDSTR我用的不多 我写出来的如下- @echo off
- for /f "tokens=*" %%i in ('findstr /v /c:".." 1.txt^|findstr /v /c:"."^| findstr "<DIR>"' ) do (
- echo %%i
- )
- pause
复制代码
作者: 慕夜蓝化 时间: 2015-1-22 22:06
- @echo off
- (for /f "tokens=*" %%i in ('findstr /l /v "." 1.txt') do (
- echo,%%i
- )) >2.txt
- pause
复制代码
我这里测试可以,你试下- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=*" %%i in ('findstr /l /v "." 1.txt') do (
- set "_%%i=$"
- )
- for /f "tokens=1-3 delims=_,=" %%i in ('set _') do (
- set "str=%%i"&if not "!str:~,3!"=="ftp" echo,%%i
- )
- pause
复制代码
这个也可以,你用下。
作者: fulijung 时间: 2015-1-22 22:06
本帖最后由 fulijung 于 2015-1-22 22:18 编辑
谢谢各位前辈,可能是我的误导
作者: Batcher 时间: 2015-1-22 22:13
回复 3# ak47b21b21
我只是告诉他那个转义符号的语法。至于其它功能方面的代码,由于写的太烂我没有看。
作者: fulijung 时间: 2015-1-22 22:20
由于初学,请大家多多见谅
作者: DAIC 时间: 2015-1-22 22:37
回复 7# fulijung
你可以试试如果有个文件夹叫做 A.B 那些代码会怎么样
作者: apang 时间: 2015-1-23 00:15
- findstr /i "<DIR>.*[^.]$" a.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |