Xml 批量修改文本文件-抓取一个值,自动粘贴另一个值

Xml 批量修改文本文件-抓取一个值,自动粘贴另一个值,xml,text,vbscript,batch-file,replace,Xml,Text,Vbscript,Batch File,Replace,我有一个文本文件,它作为批处理脚本的一部分进行处理,以便存储在文档管理系统中。它类似于XML,但略有不同(一些专有格式)。 总之,我的文本文件如下所示: [BREAKDOC] [Y:PDF] [S:WORM] [C0:20110331] [C1:AC7100P] [C2:ACH FILE EDIT LISTING] [ENDBREAK] C:\COLD\PROC\AC7100P.PDF [BREAKDOC] [Y:PDF] [S:WORM] [C0:20110331] [C1:AT4550P]

我有一个文本文件,它作为批处理脚本的一部分进行处理,以便存储在文档管理系统中。它类似于XML,但略有不同(一些专有格式)。 总之,我的文本文件如下所示:

[BREAKDOC]
[Y:PDF]
[S:WORM]
[C0:20110331]
[C1:AC7100P]
[C2:ACH FILE EDIT LISTING]
[ENDBREAK]
C:\COLD\PROC\AC7100P.PDF
[BREAKDOC]
[Y:PDF]
[S:WORM]
[C0:20110331]
[C1:AT4550P]
[C2:ATM AP MAINTENANCE REPORT BY TIME]
[ENDBREAK]
C:\COLD\PROC\AT4550P.PDF
[BREAKDOC]
[Y:PDF]
[S:WORM]
[C0:20110331]
[C1:CD1640P]
[C2:CD TRIAL BALANCE]
[ENDBREAK]
C:\COLD\PROC\CD1640P.PDF
我需要的是一个vbscript或类似的脚本,它可以查看文件,无论它在哪里看到C0值-它总是YYYYMMDD格式的日期值,它将添加一个具有相同日期的D值,只有MMDDYYYY格式的。 像这样:

[BREAKDOC]
[Y:PDF]
[S:WORM]
[D:03312011]
[C0:20110331]
[C1:AC7100P]
[C2:ACH FILE EDIT LISTING]
[ENDBREAK]
C:\COLD\PROC\AC7100P.PDF
[BREAKDOC]
[Y:PDF]
[S:WORM]
[D:03312011]
[C0:20110331]
[C1:AT4550P]
[C2:ATM AP MAINTENANCE REPORT BY TIME]
[ENDBREAK]
C:\COLD\PROC\AT4550P.PDF
[BREAKDOC]
[Y:PDF]
[S:WORM]
[D:03312011]
[C0:20110331]
[C1:CD1640P]
[C2:CD TRIAL BALANCE]
[ENDBREAK]
C:\COLD\PROC\CD1640P.PDF
这是可以用简单的vbscript完成的吗?

试试这个批处理文件

@echo off
setlocal enabledelayedexpansion
for /F %%a in (%1) do (
 set c=%%a
 set c0=!c:~1,2!
 if .!c0!==.C0 (
   set yyyy=!c:~4,4!
   set mm=!c:~8,2!
   set dd=!c:~10,2!
   echo [D:!mm!!dd!!yyyy!]
 )
 echo !c!
)
有关详细信息,请阅读
帮助集

尝试此批处理文件

@echo off
setlocal enabledelayedexpansion
for /F %%a in (%1) do (
 set c=%%a
 set c0=!c:~1,2!
 if .!c0!==.C0 (
   set yyyy=!c:~4,4!
   set mm=!c:~8,2!
   set dd=!c:~10,2!
   echo [D:!mm!!dd!!yyyy!]
 )
 echo !c!
)

有关更多信息,请阅读
帮助集

非常好……这非常有效。我可以简单地制作第二个“createdate”bat,在已经存在的批处理文件中调用它。谢谢!好极了……这工作做得很好。我可以简单地制作第二个“createdate”bat,在已经存在的批处理文件中调用它。谢谢!