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



我需要将每分钟生成的文本文件合并到单个文件中的代码,这意味着脚本运行并检查特定文件夹中最近 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:UsershpDesktopNew folder (2)%datestamp%_%HH%%SH%*.txt" "C:UsershpDesktopNew 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

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

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

最新更新