我有一个PowerShell脚本,需要递归地复制到文件夹中,替换其中的所有文件:
Copy-Item -Path $source -Destination $destination -Recurse -Force -Verbose由于目标文件夹中的某些文件的路径超过260个字符,所以我将得到一个PathTooLongException。
我读到了这些可能的解决办法:
\\?\前缀正如我所说的,我宁愿不使用前两种,第三种解决方案(\\?\)对我来说应该是好的,但是文件实际上并没有被复制。
当它执行时,它会立即完成,并且不会产生来自命令的输出。因此,目标中的文件不会被源中的文件替换。
有什么想法吗?
发布于 2018-11-01 10:20:47
\\?\前缀使用Windows的unicode版本,这需要使用LiteralPath param而不是Path
Copy-Item -LiteralPath '\\?\C:\folder\subfolder' -Destination 'D:\folder'UNC路径\\server\share\folder的语法略有不同,\\?\UNC\server\share\folder。
(与你无关,但如果有人偶然发现这个答案,可供日后参考)
https://stackoverflow.com/questions/53097227
复制相似问题