Batch file 批处理脚本,仅显示文本文件每行中的几个字

Batch file 批处理脚本,仅显示文本文件每行中的几个字,batch-file,Batch File,我们有一个如下的日志文件 我需要一个批处理脚本来显示/soft的输出。i、 例如,输出必须如下所示: SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml 它不应该显示整个路径 脚本应该从D:\custom.txt和 将输出打印到不同的文件,如SOFT\MAIN\Core\RADXML\ICCREFPX\u RAD.xml ==========================================================================

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

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

SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml
它不应该显示整个路径

脚本应该从
D:\custom.txt
和 将输出打印到不同的文件,如
SOFT\MAIN\Core\RADXML\ICCREFPX\u 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
FOR/F语句读取并处理文件中的所有行。您可以通过在命令行中键入
以获取/?
帮助以获取有关它的信息

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

一行:

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

没有必要将反斜杠加倍。另外,(infle.txt)DO@echo%B中的
FOR/F“tokens=3*delims=\%A
更简单、更健壮。最后,这种类型的解决方案去掉了标题行,这可能是不可接受的。您需要展示您为解决问题所做的工作。
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