Batch file 组合多个文本文件-批处理文件

Batch file 组合多个文本文件-批处理文件,batch-file,Batch File,我需要将每分钟生成的文本文件合并为单个文件的代码,这意味着脚本运行并检查在特定文件夹中最后15分钟生成的文件,然后将文件合并为单个文件。此单个文件必须在不同的文件夹中生成 例如:当前时间15:30:00,在C:/New中生成的文件 A.TXT DateModified 20170101150150 (YYYYMMDDHHMMSS) B.TXT DateModified 20170101151630 (YYYYMMDDHHMMSS) C.TXT DateModified 2017010115174

我需要将每分钟生成的文本文件合并为单个文件的代码,这意味着脚本运行并检查在特定文件夹中最后15分钟生成的文件,然后将文件合并为单个文件。此单个文件必须在不同的文件夹中生成

例如:当前时间
15:30:00
,在
C:/New
中生成的文件

A.TXT DateModified 20170101150150 (YYYYMMDDHHMMSS)
B.TXT DateModified 20170101151630 (YYYYMMDDHHMMSS)
C.TXT DateModified 20170101151740 (YYYYMMDDHHMMSS)
D.TXT DateModified 20170101151850 (YYYYMMDDHHMMSS)
然后:
E.TXT
将在
C:/Backup

E.TXT = B.TXT + C.TXT + D.TXT
A.TXT
不得包含在
E.TXT

批处理文件所需的脚本

:start
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%"
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 "MS=%dt:~15,3%"
set "datestamp=%YYYY%%MM%%DD%"
set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%-%MS%"

echo CurrentDate: "%datestamp%"

set SH=%Min%-15

COPY "C:\Users\hp\Desktop\New folder (2)\%datestamp%_%HH%%SH%*.txt" "C:\Users\hp\Desktop\New folder (2)\Complete_%datestamp%.txt"

TIMEOUT /T 15

GOTO start
但此副本仅复制2或3个文件,而不是15分钟内生成E.txt的所有文件

set/p B=<B.txt
set/p C=<C.txt
set/p D=<D.txt
echo %B%>>E.txt
echo %C%>>E.txt
echo %D%>>E.txt
set/p B=>E.txt
echo%D%>>E.txt
输出,E.txt单个文件,包含B.txt C.txt和D.txt的所有内容 (A.txt将不被复制)


使用
set/a sh=min-15
进行时间调整。

您尝试了什么,以及您尝试的失败原因是什么?理想情况下,您应该提供您尝试过的内容的详细信息,并包括关于失败原因的具体信息,以及错误消息和/或错误输出。不是代码编写服务;最好的问题是那些提供有用信息的问题,这样那些回答问题的人可以引导你设计出自己的正确答案。看,请再核对一下这个问题。。提前感谢..仅仅
set sh=%min%-15
是不够的(而且它是
set/a
;您可以只
set/a sh=min-15
)。你必须注意不足,然后还要调整小时数,注意不足的小时数,调整天数、月份甚至年份。然后将每个FileGeneratedDateTime与该结果()进行比较。命名
E.txt
A.txt
是否更有意义。如果需要,您当然可以首先备份或重命名
A.txt
。这样,运行脚本的频率就不那么重要了,您只需合并从
B.txt
开始的所有文件,将其命名为
A.txt
等,只需要每个文件的第一行。并且不符合“最后15分钟”的要求。