Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 合并多个文本文件&;创建一个文件_Batch File - Fatal编程技术网

Batch file 合并多个文本文件&;创建一个文件

Batch file 合并多个文本文件&;创建一个文件,batch-file,Batch File,一些背景: 我完全不熟悉批处理脚本 我试图在一个文件夹中批量合并多个文本文件,而不复制页眉/页脚 文本文件位于文件夹中,并且文本文件的名称会更改,因此文件夹中的任何文本文件都将合并 从该合并文件生成的主文件将具有标题 主文件将保存在今天的日期,Q作为名称。(010913Q) data1.text: XYZ公司名称日期:31082013 Sam81211。。。。。。。。。。。。。。 约翰71511。。。。。。。。。。。。。。 Bob61511。。。。。。。。。。。。。。 全部的 数据2.text

一些背景:

  • 我完全不熟悉批处理脚本
  • 我试图在一个文件夹中批量合并多个文本文件,而不复制页眉/页脚
  • 文本文件位于文件夹中,并且文本文件的名称会更改,因此文件夹中的任何文本文件都将合并
  • 从该合并文件生成的主文件将具有标题
  • 主文件将保存在今天的日期,Q作为名称。(010913Q)

    data1.text:
    XYZ公司名称日期:31082013
    Sam81211。。。。。。。。。。。。。。
    约翰71511。。。。。。。。。。。。。。
    Bob61511。。。。。。。。。。。。。。
    全部的
    数据2.text:
    XYZ公司名称日期:31082013
    账单71410。。。。。。。。。。。。。。
    莎拉9811。。。。。。。。。。。。。。
    乔伊6210。。。。。。。。。。。。。。
    全部的
    数据3.text:
    XYZ公司名称日期:31082013
    汉克3509。。。。。。。。。。。。。。
    莎莉42811。。。。。。。。。。。。。。
    Gina1211。。。。。。。。。。。。。。
    全部的
    主文件.Text
    XYZ公司名称日期:31082013
    复制数据1.text 010913Q
    >010913Q更多+1
    >010913Q更多+1
    
    这使用了恩多的想法

    编辑我添加了一行,显示了文件处理的顺序,并更正了最终文件名

    它在这里工作,并提供以下功能:

    XYZ Company's Name Date:31082013
    Sam81211..............
    John71511..............
    Bob61511..............
    Billy71410..............
    Sara9811..............
    Joey6210..............
    Hank3509..............
    Sally42811..............
    Gina1211..............
    
    这基本上是相同的代码-您的文件名按字母字符排序,并且需要采用可排序的格式,因为这将决定首先处理哪个文件、第二个文件等

    @echo off
    for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set "dt=%%a"
    set "YYYY=%dt:~0,4%"
    set "MM=%dt:~4,2%"
    set "DD=%dt:~6,2%"
    set "HH=%dt:~8,2%"
    set "Min=%dt:~10,2%"
    set "Sec=%dt:~12,2%"
    
    set name=tmp.tmp
    set "flag="
    for %%a in (*.text) do (
    echo processing "%%a"
       if not defined flag (
         copy "%%a" "%name%" >nul
         set flag=1
        ) else (
         more +1 "%%a" >>"%name%"
       )
    )
    findstr /v "^Total" < "%name%" >"%mm%%dd%%yyyy:~2%Q"
    del "%name%"
    
    @echo关闭
    对于/f“delims=“%”中的%%a('wmic OS Get localdatetime^ | find“”),请设置“dt=%%a”
    设置“YYYY=%dt:~0,4%
    设置“MM=%dt:~4,2%
    设置“DD=%dt:~6,2%
    设置“HH=%dt:~8,2%
    设置“最小=%dt:~10,2%
    设置“秒=%dt:~12,2%
    set name=tmp.tmp
    设置“标志=”
    对于(*.text)中的%%a,请执行以下操作(
    回显处理“%%a”
    如果未定义标志(
    复制“%%a”“%name%”nul
    设置标志=1
    )否则(
    更多+1“%%a”>>“%name%”
    )
    )
    findstr/v“^Total”<%name%>%mm%%dd%%yyyy:~2%Q”
    删除“%name%”
    
    到目前为止您尝试了什么?您到底卡在哪里?谢谢foxidrive,请帮助删除页脚行,这不是必需的。(总计………)上面的最后两行应该删除页脚。抱歉,Foxidrive,在测试运行后,我发现从文件2(data2.text:)中,页眉后的行也会被删除,在上面的情况下是(Billy71410………)&否则一切都很完美,请看一看。谢谢。嗨,Foxidrive,实际上没有文件排序格式的问题。嗨,Foxidrive,实际上没有文件排序的问题。当第二个文件合并/追加标题删除后的行时,它会额外删除一行。3,4文件被正确地追加,那么为什么它会从第二个文件中删除2行并追加。请建议。谢谢
    XYZ Company's Name Date:31082013
    Sam81211..............
    John71511..............
    Bob61511..............
    Billy71410..............
    Sara9811..............
    Joey6210..............
    Hank3509..............
    Sally42811..............
    Gina1211..............
    
    @echo off
    for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set "dt=%%a"
    set "YYYY=%dt:~0,4%"
    set "MM=%dt:~4,2%"
    set "DD=%dt:~6,2%"
    set "HH=%dt:~8,2%"
    set "Min=%dt:~10,2%"
    set "Sec=%dt:~12,2%"
    
    set name=tmp.tmp
    set "flag="
    for %%a in (*.text) do (
    echo processing "%%a"
       if not defined flag (
         copy "%%a" "%name%" >nul
         set flag=1
        ) else (
         more +1 "%%a" >>"%name%"
       )
    )
    findstr /v "^Total" < "%name%" >"%mm%%dd%%yyyy:~2%Q"
    del "%name%"