我正在尝试将一些文件复制到一个文件夹中,该文件夹中已经有这些文件的旧版本,并且机器人复制工具。为了区分版本,我想将时间戳设置为“现在”在文件被复制后,在输出文件夹中。
基本上,这就像复制和“触摸”文件一样。
然而,虽然看起来很简单,但似乎没有选项可以做到这一点。我明白,当使用德(数据)标志开启/复制, 这电视(时间戳) 标志会自动添加,因此源时间戳会被保留。
我是否遗漏了选项中的某些内容?或者还有其他选择吗?
谢谢你的帮助。
朱利安。
答案1
我认为 Robocopy 不适用于此。Robocopy 工作的核心部分是通过比较源文件夹和目标文件夹中的时间戳和文件大小来确定需要复制哪些文件。因此,您不能使用 Robocopy 将目标文件夹中的时间戳更新为比源文件夹中的时间戳“更新”。
现在,我已经看到了将具有 UNIX 权限的文件推送到 NTFS(或反之亦然)时的这种行为,但这并不是一种预期的行为,因为 Robocopy 无法转换 ACL。
我不太清楚你想做什么,但可能有很多解决方法可以为你找到合适的方法。例如:
- 让 robocopy 脚本将文件复制到根据日期命名的目录中。
- 每当脚本成功运行时,将时间/日期捕获到日志文件。
答案2
您必须在 robocopy 完成后更新文件。
你必须使用类似的东西:
If you want to assign the current time and date to a file without modifying the file, use the following syntax:
copy /b filename.txt +,,
The commas indicate the omission of the Destination parameter.
您必须在目标文件夹中运行它,这意味着您必须在命令行中位于此文件夹中才能使其正常工作。
您可以编写一个批处理文件,对该目标文件夹中的某些文件运行此命令。
但我真的还是不明白你最近的评论“我只需要复制新文件。”——这就是 robocopy 所做的,它会在复制时获取新/更新的源文件的新时间戳。因此,源中的任何新 JAR 文件都应该在源和目标中都有新的时间戳。