Copy-Item无法找到路径的一部分(文件夹名中包含“.”)

4
我正在尝试使用Copy-Item将文件复制到现有文件夹,并出现错误“找不到路径的一部分”。我已经在谷歌上搜索了很久,但似乎找不到答案。
我修改了代码,以检查是否可以将文件复制到路径中的每个文件夹,当文件名中使用“.”时遇到问题。另外,我无法更改文件夹名称,因为文件夹名称是由(糟糕的)与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视为一个文件夹?

谢谢,

Matt


我真的不明白问题出在哪里。你发布的代码对我来说完美运行。"new.txt"文件正在被复制到"C:\a\b\c\d\e.f\g\h"。在执行"Copy-Item"命令之前,所有目录都存在吗? - undefined
4个回答

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

-1

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

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

这在这种情况下不起作用,同样的错误发生了。C:\a\b\c\d\e.f\g\h 的事实有点表明了这一点,因为e.f后面确实有一个\。在我的测试中,在e.f、g或h的末尾添加\没有任何区别。 - Matty W
1
请提供您的完整代码。Copy-Item到现有目标C:\a\b\c\d\e.f\g\h\按描述工作。如果它对您不起作用,那么您正在做与您所说的不同的事情。 - Ansgar Wiechers
就所有目的而言,代码完全相同,只是问题文件夹实际上有两个点,因此路径更像C:\ a \ b \ c \ d \ 11.2.0 \ g \ h。 - Matty W
1
是时候坦白了,显然我分不清 1 和 l(它们有点相似)。 - Matty W
所以问题是由于路径输入错误引起的,现在已经解决了吗? - Ansgar Wiechers

-1

你的代码很好用。唯一需要做的就是在 $copy-item 行中删除 $ 符号。


做得好,你发现了故意的错误!不幸的是,这个错误只出现在这个论坛中,我的脚本在财务方面运行良好。 - Matty W
1
是时候坦白了,$ 不是问题所在。显然我分不清 1 和 l 的区别(它们有点相似)。 - Matty W

-1

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接