【问题标题】:Batch file date check from multiple folders从多个文件夹批量文件日期检查
【发布时间】:2013-03-23 15:07:24
【问题描述】:

我正在寻找(如果可能的话)一个检查和复制批处理脚本,我可以远程运行它来检查多个目录并复制最新的修改日期。

澄清一下:在远程机器上,我正在查看潜在的五个文件夹(可能存在也可能不存在)。我需要脚本来检查用户可能的 5 个配置文件的两个子文件夹(桌面和 Internet 收藏夹)的最后修改日期,然后选择最近修改日期并将文件夹复制到另一个位置

所以路径看起来像:

"\\%asset%\c$\documents and settings\%username%\Desktop"
"\\%asset%\c$\documents and settings\%username%\Favorites"

检查日期并与(可能)比较

"\\%asset%\c$\documents and settings\%username%.temp\Desktop"
"\\%asset%\c$\documents and settings\%username%.temp\Favorites"

或者

"\\%asset%\c$\documents and settings\%username%.temp001\Desktop"
"\\%asset%\c$\documents and settings\%username%.temp001\Favorites"

一旦找到具有最近修改日期的子文件夹,就可以复制(仅是最近的)到:

"\\%asset%\c$\documents and settings\Backup"

我知道我可以在一个位置完成检查,但我不知道如何要求批处理运行多项检查,然后选择最近的。

这实际上是可能还是我用错误的语言尝试?除了支票以外,我什么都写完了,这就是我卡住的地方……

任何帮助将不胜感激!

【问题讨论】:

  • 需要更清楚地了解您要做什么。例如,我们必须假设您有一个资产列表和 USERNAMES(但 USERNAME 具有特殊含义 - CURRENT 用户名)以及这些“潜在 5 个配置文件”的名称 - 无后缀、.temp、.temp001 -大概是 .temp002 和 .temp002。您是否知道,如果这些目录之一的子目录发生更改,则目录上的日期不会更改?这会改变你的想法吗?可以从“潜在 5”子目录的每个子目录中简单地 XCOPY /D 并获得所有可用版本中的最新版本。
  • 不利的一面是,如果用户更改了快捷方式,然后将旧版本复制回去,那么最新版本的快捷方式将是原始更改之后的版本......除此之外 - 如果如果您想要最新的目录日期(忽略子目录可能已更改),那么我们需要进行繁重的日期/时间操作,并且需要知道您的日期时间格式。
  • 我确信它可以用批处理来完成,但正如彼得赖特所暗示的那样,批处理日期比较是脆弱和困难的。我觉得看Powershell会更好。

标签: if-statement batch-file copy set xcopy


【解决方案1】:

正如我在评论中所说,我认为 Powershell 更适合这项任务。但我确实想到了一种可以批量工作的方法,而不必求助于文本日期比较(这很困难)。

您可以将robocopy 与复制时间戳的/copy:t 选项一起使用。想象一下,将所有三个目录复制到一个位置,然后执行 dir /b /od 以列出这个按日期排序的临时目录以找到最新的目录,并将其复制到您的目标。

我没有时间测试这个理论或给你真正的代码,但希望它能给你一个尝试的方法。或者说服你看看 Powershell。 :-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    相关资源
    最近更新 更多