字符串变量作为Get-ChildItem的参数

时间:2013-11-19 11:40:21

标签: powershell powershell-v2.0

为什么这样做有效:

PS C:\Users\user> Get-ChildItem '\\COMPUTER\folder with spaces'

但这不是:

PS C:\Users\user> $a = "'\\COMPUTER\folder with spaces'"
PS C:\Users\user> Get-ChildItem $a

Cannot find path 'C:\Users\user\'\COMPUTER\folder with spaces''
because it does not exist

如何使用变量来做后者的效果?

2 个答案:

答案 0 :(得分:4)

进一步的实验揭示了这个解决方案:

PS C:\Users\user> $a = "\\COMPUTER\folder with spaces"
PS C:\Users\user> Get-ChildItem "$a"

答案 1 :(得分:3)

嵌套引号成为字符串的一部分。

  • Get-ChildItem '\\COMPUTER\folder with spaces'

    这将从主机folder with spaces上的共享COMPUTER中读取子项。

  • Get-ChildItem "\\COMPUTER\folder with spaces"

    这也是一样的,但双引号也允许你在字符串中使用变量,例如像这样:"\\$computer\folder with spaces"

  • Get-ChildItem "'\\COMPUTER\folder with spaces'"

    但是,这将在本地计算机上的当前工作目录中查找文字名称为'\\COMPUTER\folder with spaces'(包括单引号)的文件或文件夹。