gpt4 book ai didi

PowerShell 复制项 PathTooLongException

转载 作者:行者123 更新时间:2023-12-02 23:37:01 26 4
gpt4 key购买 nike

我有一个 PowerShell 脚本,我需要在其中递归复制到一个文件夹,替换其中的所有文件:

Copy-Item -Path $source -Destination $destination -Recurse -Force -Verbose

由于目标文件夹中的某些文件的路径超过 260 个字符,我收到 PathTooLongException。

我已经阅读了这些可能的解决方案:

  1. 使用robocopy
    • 我宁愿使用纯 PowerShell
  2. 在注册表和组策略中启用长路径
    • 要求用户必须重新启动他的控制台,我也不希望更改用户的注册表。
  3. 为路径使用 \\?\ 前缀

正如我所说,我宁愿不使用前两个,第三个解决方案 (\\?\) 对我来说应该没问题,但实际上并没有复制文件。

当它执行时,它会立即完成并且不会生成命令的输出。因此,目标中的文件不会被源中的文件替换。

有什么想法吗?

最佳答案

\\?\ 前缀使用 Windows API 的 unicode 版本,这需要使用 LiteralPath 参数而不是 Path :

Copy-Item -LiteralPath '\\?\C:\folder\subfolder' -Destination 'D:\folder'

UNC 路径 \\server\share\folder 的语法略有不同 \\?\UNC\server\share\folder

(与您没有特别相关,但如果有人偶然发现此答案,供将来引用)

关于PowerShell 复制项 PathTooLongException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53097227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com