通过保留其权限复制目录

Azk*_*erM 5 windows command-line xcopy

我找到了这篇KB 文章,它解释了主题标题。但是我的问题是当我使用“xcopy”命令时;它只将目录中的内容复制到新位置,而不是像 linux 发行版那样将整个目录复制到新位置。

例如:如果我输入“xcopy c:\folder1 d:\newfolder”;然后它将 c:\folder1 中的内容复制到 d:\newfolder 而不是 folder1。我很困惑,因为我该如何实现这一目标。请就此给我建议。

先感谢您。

Azk*_*erM 13

我终于设法实现了这一点,我认为这可能有助于其他人实现此类需求。好吧,正如我之前提到的,我参考了这篇知识库文章并使用以下命令来实现而不会丢失任何数据

我无法复制目录本身,但我设法在不失去许可的情况下复制了其中的所有内容。所以这里是如何

首先,我创建了一个文件夹只是为了复制源目录中的所有内容,我过去常常xcopy通过保留其权限来复制所有文件和文件夹。

xcopy c:\source_folder_name e:\destination_folder_name /O /X /E /H /K
Run Code Online (Sandbox Code Playgroud)
  • /E -复制文件夹和子文件夹,包括空文件夹。
  • /H - 也复制隐藏文件和系统文件。
  • /K -复制属性。通常,Xcopy 会重置只读属性。
  • /O -复制文件所有权和 ACL 信息。
  • /X -复制文件审核设置(暗示 /O)。

这将无需任何进一步的问题。完成后,我注意到复制的文件和原始文件之间存在文件计数差异。因此,我过去常常robocopy通过在镜像时创建日志文件来确保所有文件都已就位。

假设您的命令提示符路径是C:/ ..

robocopy c:\source_folder_name e:\destination_folder_name /MIR /LOG:log.txt
Run Code Online (Sandbox Code Playgroud)
  • /MIR -镜像文件并在源和目标之间复制/修改/删除。
  • /LOG -创建进程的日志文件

注意:日志文件将在命令提示符中显示的驱动器或路径的位置创建。例如:如果它的C:/,那么日志将在那里)。

一旦robocopy完成了它的一部分,我曾经检查过属性以确保两者都符合要求。天啊!它正在统计,我检查了日志以查看未复制哪个文件。正如我怀疑的那样,它只是thumbs.db和其他一些被省略的文件。

PS:当您使用 robocopy 进行镜像时请注意,因为如果与目标不符,它可能会删除/修改源文件(非常罕见,但可能会发生)。我使用它是因为新目的地的归档计数低于原点。另外,我有一份源文件的备份副本,只是为了避免任何数据丢失。除此之外,这两个命令都将执行而不会造成任何麻烦。

希望这可以帮助!