windows - 获取在 Windows XP 上复制文件的时间和日期

标签 windows perl batch-file windows-xp

我已经在 Windows XP 机器上安排了一个批处理文件来从网络共享中复制一些文本文件。下次运行此任务时,文件将被简单地覆盖。批处理文件是这样的

copy \\networkshare1\*.txt C:\monitoring\files\
copy \\networkshare2\*.txt C:\monitoring\files\

然后我使用 Perl 来分析这些文件。我想知道的是,是否有一种简单的方法可以在不更改文件名的情况下在某处记录文件从网络共享复制的时间,以便我的 Perl 脚本知道它是使用旧版本还是新版本文件。

最佳答案

一种方法,假设目标是 NTFS:

set dest=C:\monitoring\files\
for %%f in ("\\networkshare1\*.txt") do (
    copy "%%f" "%dest%"
    echo %TIME% >"%dest%%%~nxf:copywhen"
)

这会手动复制每个并将时间附加到 data stream copywhen ,当文件位于 NTFS 卷上时,它与文件永久关联。

漂亮确信 Perl 的标准文件例程将允许通过简单地将路径传递为 C:\monitoring\files\whatever.txt:copywhen 来读取它,如果没有,您可以从命令行捕获输出 more <"C:\monitoring\files\whatever.txt:copywhen" .

关于windows - 获取在 Windows XP 上复制文件的时间和日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992061/

相关文章:

windows - HDC 是否使用 alpha channel ?

c++ - 如何在不触及该目录中的文件的情况下查找文件夹更改(使用 Windows 和 C++)

ruby - 如何从代码中引用 Docker 卷?

perl - 在 Perl 中迭代 bless 对象

perl - 比较变量在Perl中的前导零

windows - 文件名中的批处理命令日期和时间

windows - 在磁盘上读取/写入文件时如何限制硬盘磁盘 I/O?

perl - 如何将 `our` 类变量与 `UNITCHECK` 正确地与 `use strict` 一起使用?

用于复制最大文件和按模式的 Windows 批处理脚本

c# - 使用带有约束的 C# 模拟批处理文件