我尝试过Fastcopy和Robocopy,两者似乎都可以进行其中一种操作,但不能同时进行。
对于像(复制前)
这样的文件D:\SYMLINKSOURCE\file1 <<symlink from D:\Source\file1 **edit
D:\SYMLINKSOURCE\file2 <<symlink from D:\Source\file1 **edit
D:\DESTINATIONxx\file2 <<not a symlink
我想将D:\SYMLINKSOURCE\*
复制到D:\DESTINATIONxx
,但不要覆盖D:\DESTINATIONxx\file1
,以便在复制后看起来像
(AFTER COPYING)
D:\SYMLINKSOURCE\file1 <<symlink from D:\Source\file1
D:\SYMLINKSOURCE\file2 <<symlink from D:\Source\file2
D:\DESTINATIONxx\file1 <<symlink from D:\Source\file1
D:\DESTINATIONxx\file2 <<not a symlink
我尝试过不覆盖,但它不会保留符号链接,而是复制已解析的文件Copy files without overwrite
robocopy "D:\SYMLINKSOURCE" "D:\DESTINATION" /E /XC /XN /XO
(AFTER COPYING)
D:\SYMLINKSOURCE\file1 <<symlink from D:\Source\file1
D:\SYMLINKSOURCE\file2 <<symlink from D:\Source\file2
D:\DESTINATIONxx\file1 <<not a symlink < i wanted this as symlink
D:\DESTINATIONxx\file2 <<not a symlink
并添加/ SL以保留符号链接覆盖所有内容。
robocopy "D:\SYMLINKSOURCE" "D:\DESTINATION" /E /XC /XN /XO /SL
(AFTER COPYING)
D:\SYMLINKSOURCE\file1 <<symlink from D:\Source\file1
D:\SYMLINKSOURCE\file2 <<symlink from D:\Source\file2
D:\DESTINATIONxx\file1 <<symlink from D:\Source\file1
D:\DESTINATIONxx\file2 <<symlink from D:\Source\file1 < i did not want this overwritten
有什么方法可以达到我的目的吗?
答案 0 :(得分:1)
我可以看到如何执行此操作的唯一方法是首先使用两个单独的robocopy作为非链接文件,然后使用要作为链接复制的链接文件。假设普通文件多于链接,您可以运行:
robocopy "D:\SYMLINKSOURCE" "D:\DESTINATION" /E /XC /XN /XO
然后通过单独命名(或使用某些命名约定,如sl-file1
和美国sl*
模式)来复制实际链接,从而修复错误覆盖的链接:
robocopy "D:\SYMLINKSOURCE\file1" "D:\DESTINATION" /E /XC /XN /XO /SL