【发布时间】: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