批处理脚本只显示文本文件每行中的几个单词

时间:2012-09-06 11:29:26

标签: batch-file

我们有一个如下的日志文件。

我需要一个批处理脚本来显示/soft的输出。即输出必须如下:

SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml

它不应显示整个路径。

脚本应该从D:\custom.txt和`读取日志文件 将输出打印到不同的文件,如SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml

=========================================================================== 
                               Custom FILES                                 
=========================================================================== 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\02-07-2012_2108\SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\02-07-2012_2108\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\05-07-2012_1950\SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\05-07-2012_1950\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\06-07-2012_1949\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\09-07-2012_1948\SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\09-07-2012_1948\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\11-07-2012_1946\SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\11-07-2012_1946\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\17-07-2012_1942\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\19-07-2012_1938\SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\23-07-2012_1939\SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\23-07-2012_1939\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml

2 个答案:

答案 0 :(得分:1)

@echo off
setlocal enableDelayedExpansion
>modified.log (
  for /f "delims=" %%A in (original.log) do (
    set "ln=%%A"
    echo !ln:*\SOFT\=SOFT\!
  )
)

FOR / F语句读取并处理文件中的所有行。您可以通过从命令行键入FOR /?HELP FOR来阅读相关内容。

关键位是!ln:*\SOFT\=SOFT\! - 在文本中搜索“\ SOFT \”并删除从行开头到“\ SOFT \”的所有内容,并将删除的位替换为“SOFT \”。您可以通过从命令行键入SET /?HELP SET来阅读有关字符串搜索和替换的信息。

答案 1 :(得分:0)

一个班轮:

D:\>FOR /F "tokens=4,5,6,7,8 delims=\\" %G in (infile.txt) DO @echo %G\%H\%I\%J\%K

SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml
SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml
SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml