在powershell中创建带空格的路径数组

时间:2012-04-17 04:36:39

标签: powershell

我正在尝试定义一个文件路径数组,我可以循环并应用用户权限。其中一些路径中有空格,我试图定义数组变量的方式,我无法循环它们。

$rootSitePath = "C:\Path"

$paths = $rootSitePath + "\" + "Path1",
         $rootSitePath + "\" + "Path with spaces",
         $rootSitePath = "\" + "Path3"

foreach($path in $paths)
{
   #do stuff
}

不确定我是否需要以某种方式逃脱?

2 个答案:

答案 0 :(得分:3)

不,你不需要做任何特殊的事情 - 但是你需要在数组项周围添加括号,就像你上面的那样。尝试:

$rootSitePath = "C:\Path"

$paths = ($rootSitePath + "\" + "Path1"),
         ($rootSitePath + "\" + "Path with spaces"),
         ($rootSitePath + "\" + "Path3")

foreach($path in $paths)
{
   get-childitem $path
}

答案 1 :(得分:1)

数组,运算符的优先级高于+运算符的优先级。

所以,如果你做的事情(简化例子):

$paths = $rootSitePath+"\"+"Path1","path2"

$paths将是一个字符串,因为它确实执行了$rootSitePath\Path1 path2的字符串连接(数组"Path1", "path2"的字符串表示)。所以你必须说,之前的第一部分是第一个元素:

$paths = ($rootSitePath+"\"+"Path1"),"path2"

因此,要解决您的问题,请将每个元素括在括号中。除此之外,你没有遇到问题,因为你的路径中有空格。