当前位置:DOS资源站资料中心批处理教程 → 提取每行尾数固定字符后的内容

提取每行尾数固定字符后的内容

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2008-5-22 19:51:52

有文本1.txt,内容如下:
c:\WINDOWS\Driver Cache\i386\ntkrnlmp.exe
c:\WINDOWS\Driver Cache\i386\ntkrnlpa.exe
c:\WINDOWS\Driver Cache\i386\ntkrpamp.exe
c:\WINDOWS\Driver Cache\i386\ntoskrnl.exe
c:\WINDOWS\ime\IMJP8_1\cplexe.exe
c:\WINDOWS\Installer\{5582719E-BB29-477B-BDD4-B494A746CE7D}\DWARPPRODUCTICON.exe
c:\WINDOWS\Installer\{F312B2F8-A700-46D2-A2DD-BB758313EA2F}\EMARPPRODUCTICON.exe
c:\WINDOWS\Installer\{F9A07F18-DAA5-499C-B721-8C9D9F59707A}\System\Folder_msiexec.exe

怎么把每行最后一个\后的内容提取出来,在文本2.txt:
ntkrnlmp.exe
ntkrnlpa.exe
ntkrpamp.exe
ntoskrnl.exe
cplexe.exe
DWARPPRODUCTICON.exe
EMARPPRODUCTICON.exe
Folder_msiexec.exe
 

如果后面都是文件名可用第一种方法,若后面的是不确定内容可用第二种方法。
:

--------------------------------------------------------------------------------

@echo off
for /f "delims=" %%a in (a.txt) do echo %%~nxa
pause

--------------------------------------------------------------------------------

@echo off
for /f "delims=" %%a in (a.txt) do call :loop "%%a"
pause
:loop
for /f "tokens=1* delims=\" %%i in ("%~1") do (
  if "%%j"=="" (echo %%i) else call :loop "%%j"
)
goto :eof