【问题标题】:Batch Modification of Text File - grab one value, paste another automatically文本文件的批量修改 - 抓取一个值,自动粘贴另一个值
【发布时间】:2011-07-27 23:41:49
【问题描述】:

我有一个文本文件,它正在作为批处理脚本的一部分进行处理,以存储在文档管理系统中。它类似于 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 完成吗?

【问题讨论】:

    标签: xml text vbscript batch-file replace


    【解决方案1】:

    试试这个批处理文件

    @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!
    )
    

    欲了解更多信息,请阅读HELP SET

    【讨论】:

    • 非常好......这非常有效。我能够简单地制作我在现有批处理文件中调用的第二个“createdate”bat。非常感谢!
    猜你喜欢
    • 2013-09-20
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多