我正在尝试在PowerShell中运行robocopy脚本,以便将其插入到我的其他PowerShell脚本中:
$SERVERPATH = "E:\Cisco Config Backups"
$NETWORKPATH = "\\SERVER\Cisco Config Backups"
robocopy $SERVERPATH $NETWORKPATH /E /XC /XN /XO /R:0 /W:0 /COPY:T /LOG:C:\logs\robocopy_logs\config_copy.log /TEE /NP
然而,当我运行此代码时,我看到robocopy正在工作,它给了我以下输出: ROBOCOPY ::适用于Windows的强大文件复制
Started : Thursday, June 30, 2016 1:52:56 PM
Source : E:\Cisco Config Backups
Dest : \\SERVER\Cisco Config Backups
Files : *.*
Options : *.* /TEE /S /E /DCOPY:D /COPY:T /NP /XO /XN /XC /R:0 /W:0
但是没有任何东西被复制过来,我想使用robocopy进行日志记录,所以我可以让它跳过已经存在的文件。
如果我做错了,请告诉我。
答案 0 :(得分:2)
/COPY:T
条件指定仅复制文件时间戳,因此它不会复制文件的实际数据。但是,由于目标上没有要复制时间戳的文件,因此没有任何反应。
您需要至少指定/COPY:DT
以便复制文件数据,但您可以完全删除/COPY
开关,因为您可能也需要文件属性,这将获得默认情况下与文件数据和时间戳一起复制。
来自robocopy /?:
/COPY:copyflag[s] :: what to COPY for files (default is /COPY:DAT).
(copyflags : D=Data, A=Attributes, T=Timestamps).
(S=Security=NTFS ACLs, O=Owner info, U=aUditing info)
您还需要检查您正在使用的所有交换机,因为有些交换机存在冲突 - 不确定robocopy在这些情况下的作用。正如Matt在下面的评论中指出的那样,您有/E
和/S
。你想复制空子目录吗? /E
指定复制空目录,但/S
指定不复制空目录。