1

尝试通过以下方式将文件复制到目录时 -

Copy-Item $Source -Destination "C$\Program Files (x86)" -Recurse -EA Continue -EV +PushFailures

我无法这样做。因此,我尝试测试 PowerShell 是否甚至可以看到目录-

Test-Path "C$\Program Files (x86)"

即使它显然存在,它也会返回“False”。

我在这里做错了什么,我该如何纠正?我阅读了有关“$env:programfiles”的信息,尽管我不确定如何将其实现为字符串变量。

提前致谢。

4

1 回答 1

3

我不习惯C$\Program Files (x86)在这种情况下使用,因为它通常在远程管理共享中引用,例如\\Computername\C$\Program Files (x86). 你的意思是只用C:\Program Files (x86)吗?

部分问题在于它$是 PowerShell 中的保留字符,需要在字符串中转义。用你所拥有的两种方法来做到这一点:

-Destination "C`$\Program Files (x86)"
-Destination 'C$\Program Files (x86)'

我觉得虽然这行不通。如果您只想要程序文件的本地路径,那么这将帮助您按照您的建议包含环境变量

-Destination "$env:ProgramFiles"
-Destination "${env:ProgramFiles(x86)}"

如果路径同时包含字符串元素和变量,那么您需要使用子表达式确保它们正确展开

-Destination "$($env:ProgramFiles)\Internet Explorer"
于 2014-10-30T15:51:32.943 回答