【发布时间】:2014-10-15 11:44:19
【问题描述】:
在这方面需要一些帮助 我有一个目录,其中包含来自各种应用程序的子目录,所以假设目录是 c:\home,每个应用程序都有一个名为应用程序名称的子目录,所以我们将拥有
c:\home\app1
c:\home\app2
等等
这些应用程序写入大型日志文件,然后每小时重新创建它们,但它们会被重新创建到一个不同的目录中,根据日期和时间调用,例如 dd/mm/yyyy/hr,这是在实际子目录和一个日志文件中创建的每个应用程序的每个目录中都将具有完全相同的名称。所以我们最终会得到这个
c:\home\app1\1015201410\app1.log
c:\home\app1\1015201411\app1.log
c:\home\app1\1015201412\app1.log
c:\home\app2\1015201410\app2.log
c:\home\app2\1015201411\app2.log
c:\home\app2\1015201412\app2.log
我想每小时列出目录并收集每个应用程序的最新日志,换句话说,在这种情况下,我只想收集以下 2 个,因为它们是最新的(结束时间 12 表明它是第 12 个小时)
c:\home\app1\1015201412\app1.log
c:\home\app4\1015201412\app2.log
现在一个一个地获取文件很容易,但是脚本会变得太长,需要定期编辑以允许将新应用程序添加到目录中。 我能够进行复制、格式化时间/日期部分等。我只需要找到一种方法来搜索包含最新时间日期的所有子目录的主目录,然后将文件从它复制到其他地方。
所以我尝试了这个。注意 timedateformat 已预定义:
for /D %%d in (c:\home\*\%timedateformat%\*) do (
for %%f in (%%d\.log) do (
xcopy %%f C:\destination\
)
)
但这显然不喜欢 * 部分,因此我不会得到任何结果。 如果有人能够提供帮助,我将不胜感激。
【问题讨论】:
标签: windows file batch-file cmd