Board logo

标题: [文本处理] [已解决]批处理如何提取含有指定字符串但不包含小数点"."的行 [打印本页]

作者: 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我用的不多 我写出来的如下
  1. @echo off
  2. for /f  "tokens=*" %%i in ('findstr /v /c:".." 1.txt^|findstr /v /c:"."^| findstr "<DIR>"' ) do (
  3. echo  %%i
  4. )
  5. pause
复制代码

作者: 慕夜蓝化    时间: 2015-1-22 22:06

  1. @echo off
  2. (for /f "tokens=*" %%i in ('findstr /l /v "." 1.txt') do (
  3.     echo,%%i
  4. )) >2.txt
  5. pause
复制代码
我这里测试可以,你试下
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=*" %%i in ('findstr /l /v "." 1.txt') do (
  3.     set "_%%i=$"
  4. )
  5. for /f "tokens=1-3 delims=_,=" %%i in ('set _') do (
  6.     set "str=%%i"&if not "!str:~,3!"=="ftp" echo,%%i
  7. )
  8. 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

  1. findstr /i "<DIR>.*[^.]$" a.txt
复制代码





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