找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21142|回复: 4

[文本处理] 批处理命令Findstr怎样提取字符?

[复制链接]
发表于 2012-11-7 13:29:15 | 显示全部楼层 |阅读模式
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中,请问该如何实现呢?
发表于 2012-11-7 15:37:27 | 显示全部楼层
没有什么好的思路。

  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:26 | 显示全部楼层
回复 2# wc726842270


    恩,今天就想用FINDSTR提取了,但是我的能力没法实现,只有用回FOR了,谢了
发表于 2012-11-7 16:58:31 | 显示全部楼层
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
复制代码
发表于 2012-11-7 17:26:00 | 显示全部楼层
  1. sed -r "/\.exe/!d; s/.*\\([^\\]+.exe).*/\1/" a.txt >b.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 20:53 , Processed in 0.017932 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表