net*_*ope 55 windows file-management
在 Linux 上,我们可以简单地执行以下操作:
cp -pr directory
如何在 Windows 中做到这一点?可以在 Windows 资源管理器中完成吗?任何GUI工具建议?
如果我能保持 NTFS 权限和创建/修改/访问时间,那将是最好的。至少,我需要保留文件和目录的修改日期。Windows 资源管理器的副本不会保留目录的修改日期。
小智 28
...或者您可以制作一个 zip 存档(压缩方法设置为“存储”),然后将文件解压缩到您想要复制的位置。日期/时间属性与原始文件相同。
She*_*man 22
Robocopy 命令行工具(大多数版本的 Windows 随附)
在我的 Windows 10 机器上,它位于C:\Windows\System32
从Wikipedia,它可以与以下一组选项一起使用以保留文件和目录时间戳以及其他属性:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T保留原始目录的时间戳(需要 XP026 或更高版本)/E: 递归复制目录,包括空目录/R:0: 不重试锁定的文件(失败副本的重试次数默认值为 100 万次),
/COPYALL:复制所有文件信息,
(相当于/COPY:DATSOU,其中
D=数据, A=属性, T=文件时间戳, S= 安全性 = NTFS ACL, O=所有者信息, U=审核信息), 如果你只是想保存日期和目录时间戳,但确实不希望空子目录拷贝过来,做不希望其他属性保留,那么你可以使用:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
其中,/S拷贝非空的子目录
要查看完整语法,请robocopy /?在命令提示符下键入,或查看以下博客文章:https : //ss64.com/nt/robocopy.html和
https://techjourney.net/robocopy-syntax-command-line -开关和示例/
我最近运行的命令示例:
Robocopy D:\ C:\D_backup /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
请注意排除 2 个子目录如何要求使用该/XD标志两次。此外,第二个目录排除使用引号,因为目录名称中有空格。
最后,您可以/L在真正执行命令之前添加标志来测试命令。通过这种方式,您可以验证它不会复制(或删除)您不想要的任何目录/文件,并且您的命令中没有错误。
运行上面的示例命令后,该目录不可见!(即使show hidden files并show system files在 Windows 10 中进行了检查!)根据https://serverfault.com/a/455029/399723的以下命令修复了此问题:
attrib -h -s C:\D_backup
Run Code Online (Sandbox Code Playgroud)
或者,/A-:SH根据https://serverfault.com/a/565804/399723,添加“从系统文件中取消设置隐藏属性”,从而可以防止目录首先被隐藏。另请参阅https://ss64.com/nt/robocopy.html。
本次讨论更详细地说明了此选项作为解决方案。
Robocopy D:\ C:\D_backup /A-:SH /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
或者,如果您不想使用命令行,可以下载robocopy的GUI 版本。
另一个 Windows 实用程序是XCopy,尽管它包含在 Windows 10 中,但它已被弃用。请参阅链接以了解问题。
RoboCopy 的维基百科页面(链接在本文顶部)列出了可以使用的其他软件。
在 Windows 中没有简单的方法可以做到这一点。有几个程序声称能够保留文件的创建日期。
这里有一些程序可能会起作用http://forum.soft32.com/windows/preserve-creation-date-Copy-ftopict361820.html ??(断开的链接;不在 Wayback Machine 中)。
仅使用 Windows 资源管理器是不可能的。如果您查看 CopyFile, CopyFile 函数 (winbase.h)的文档 ,您会发现它避免了该主题。但是 CopyFile 函数(Windows 开发人员预览版) (同一 URL 的 2012 存档)说:
文件时间语义
本文应记录有关文件创建/修改/访问时间的语义。
创建时间:如果目标文件已经存在,则保留其创建时间,否则设置为当前系统时间。
上次修改时间:始终从源文件的修改时间复制。
上次访问时间:始终设置为当前系统时间。
| 归档时间: |
|
| 查看次数: |
226033 次 |
| 最近记录: |