合并多个文本文件 - 批处理文件

时间:2017-10-17 16:20:36

标签: batch-file

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

例如:当前时间15:30:00C:/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分钟内生成的所有文件

1 个答案:

答案 0 :(得分:0)

生成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

输出,E.txt单个文件,包含B.txt C.txt和D.txt的所有内容 (A.txt不会复制)

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