【问题标题】:Copy-Item Could not find part of path (with . in folder name)Copy-Item 找不到路径的一部分(文件夹名称中带有 .)
【发布时间】:2013-07-17 10:37:34
【问题描述】:

我正在尝试使用 Copy-Item 将文件复制到现有文件夹并收到错误“找不到路径的一部分”。我已经用 Google 搜索这个问题很久了,但似乎找不到答案。

我更改了代码以检查是否可以复制到路径中的每个文件夹,然后在文件名中使用 .'s 时遇到问题。此外,我无法更改文件夹名称,因为文件夹名称是由(蹩脚的)Oracle 相关安装程序创建的。

基本上代码是这样的(代码是在源目录的上下文中运行的)...

$Filename = "new.txt"
$Destination = "C:\a\b\c\d\e.f\g\h"
Copy-Item -Path $Filename -Destination $Destination

所以这适用于文件夹 a、b、c 和 d,但对于文件夹 e.f,new.txt 被复制到文件夹 d 并重命名为 e.f(这是有道理的),对于文件夹 g 和 h,我收到上述错误。如何让 Copy-Item 将 e.f 视为文件夹?

干杯,

马特

【问题讨论】:

    标签: powershell copy-item


    【解决方案1】:

    先创建目录: New-Item -Path d:\a\b\c\d\e.f\g\h -类型目录

    【讨论】:

      【解决方案2】:

      您可以通过附加反斜杠强制Copy-Item 将目标视为文件夹:

      Copy-Item -Path $Filename -Destination ($Destination + '\')
      

      【讨论】:

      • 这在这种情况下不起作用,会发生同样的错误。 C:\a\b\c\d\e.f\g\h 并没有表明这一点,因为 e.f 后面确实有一个 \。将 \ 附加到 e.f、g 或 h 的末尾对我的测试没有影响。
      • 请提供您的完整代码。 Copy-Item 到现有目的地 C:\a\b\c\d\e.f\g\h\ 按描述工作。如果它对您不起作用,那么您所做的事情与您所说的不同。
      • 出于所有意图和目的,代码完全相同,只是问题文件夹中实际上有两个 .,因此路径更像 C:\a\b\c\d\ 11.2.0\g\h
      • 是时候坦白了,显然我无法分辨 1 和 l 之间的区别(它们有点相似)。
      • 那么问题是由输入错误的路径引起的,现在解决了吗?
      【解决方案3】:

      你有什么工作正常。我唯一要做的就是从 $copy-item 行中删除 $。

      【讨论】:

      • 很好地发现了故意的错误!不幸的是,错误仅在这个论坛中,我的脚本失败了 $ wise。
      • 是时候坦白了,$ 不是问题。显然我无法区分 1 和 l 之间的区别(它们有点相似)。
      【解决方案4】:

      首先创建目录。这不是问题。

      $Filename = "new.txt"
      $Destination = "C:\a\b\c\d\e.f\g\h"
      mkdir $Destination
      Copy-Item -Path $Filename -Destination $Destination
      

      【讨论】:

        猜你喜欢
        • 2018-07-31
        • 2018-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-20
        • 2020-06-30
        • 2012-09-26
        • 1970-01-01
        相关资源
        最近更新 更多