2017-10-17 111 views
-1

我需要的代码组合,其在每分钟为单个文件生成的文本文件,是指脚本运行和检查在特定的文件夹最后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.TXTC:/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

你尝试过什么,以及如何有你试过失败了怎么办?理想情况下,你应该提供一个[MCVE]你已经尝试过的东西,包括它是如何失败的具体信息,错误消息和/或错误的输出。 [SO]不是代码写入服务;最好的问题是提供有用信息的问题,以便那些回答问题的人可以指导你设计自己的正确答案。见[问]。 –

+0

请检查问题又来.. 在此先感谢.. –

+0

只是'组SH =%分钟%-15'是不够的(和它的'设置/了';你可以'设置/ A SH = MIN- 15')。你必须照顾不足的情况,然后调整时间和照顾小时的不足,并适应几天,几个月甚至一年的时间。然后,每个FileGeneratedDateTime比较该结果([中获得灵感(https://stackoverflow.com/a/18024049/2152082))。 – Stephan

回答

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进行时间调整。

+0

只需要每个文件的第一行。并不符合“最后15分钟”的要求。 – Stephan