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