[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理命令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中,请问该如何实现呢?

没有什么好的思路。
  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
复制代码
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

回复 2# wc726842270


    恩,今天就想用FINDSTR提取了,但是我的能力没法实现,只有用回FOR了,谢了

TOP

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
复制代码

TOP

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

TOP

返回列表