Board logo

标题: [文本处理] 批处理命令Findstr怎样提取字符? [打印本页]

作者: 秋风·飞扬    时间: 2012-11-7 13:29     标题: 批处理命令Findstr怎样提取字符?

1.txt内容
"360HealthElf"="\"D:\\360safe\\Utils\\360HealthElf.exe\" autorun"
"360DeskTop"="\"C:\\Program Files\\360\\360Desktop\\Bin\\360Desktop.exe\" /autorun"
@=""

想将1.txt中的
360HealthElf.exe
360Desktop.exe
两个扩展名为exe的程序提取到2.txt中,请问该如何实现呢?
作者: wc726842270    时间: 2012-11-7 15:37

没有什么好的思路。
  1. @echo off
  2. for /f "delims=" %%i in (1.txt) do (
  3. set a=%%i
  4. setlocal enabledelayedexpansion
  5. set b=!a:\= !
  6. for %%j in (!b!) do (
  7. set str=%%j
  8. if !str:~-4! equ .exe echo %%j
  9. )
  10. endlocal
  11. )
  12. pause
复制代码

作者: 秋风·飞扬    时间: 2012-11-7 15:44

回复 2# wc726842270


    恩,今天就想用FINDSTR提取了,但是我的能力没法实现,只有用回FOR了,谢了
作者: CrLf    时间: 2012-11-7 16:58

findstr 只用于查找匹配行,不能局部提取
  1. @echo off
  2. for /f tokens^=4delims^=^" %%a in (1.txt) do (
  3. for %%b in ("%%a\.") do echo %%~nxb
  4. )
  5. pause
复制代码

作者: BAT-VBS    时间: 2012-11-7 17:26

  1. sed -r "/\.exe/!d; s/.*\\([^\\]+.exe).*/\1/" a.txt >b.txt
复制代码





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