文件路径

时间:2016-11-29 20:28:16

标签: powershell csv escaping

使用简单脚本从.csv文件中提取工作站名称,然后在该工作站上打开文件夹位置。关于如何让PowerShell不拆分文件路径,我一直遇到麻烦。到目前为止,我已经尝试过:

单引号:'\\$results\c$\direc\Desktop\Start Menu\Programs\Startup'

常规报价:"\\$results\c$\direc\Desktop\Start Menu\Programs\Startup"

双引号:""\\$results\c$\direc\Desktop\Start Menu\Programs\Startup""

在空间前面反击:"\\$results\c$\direc\Desktop\Start` Menu\Programs\Startup"

8.3名称:"\\$results\c$\direc\Deskto~1\StartM~1\Progra~1\Startu~1"

这是我的代码:

$inputFile = "C:\Users\$env:username\Desktop\workstations.csv"
$results = @()
Import-CSV -Path $inputFile -Header Workstations | % {
  Invoke-Item -Path "\\$results\c$\JHMCIS\Desktop\Start Menu\Programs\Startup"
}

一切都很完美,直到它读取文件路径。然后它会返回一个错误,表示该路径不存在。

1 个答案:

答案 0 :(得分:2)

您的字符串格式很好,问题是您刚刚创建了一个名为$results的空数组,然后在您执行调用时将其添加到字符串中。将最后一行更改为

% {Invoke-Item -Path "\\$($_.Workstations)\c$\JHMCIS\Desktop\Start Menu\Programs\Startup"}

请注意,上面假设该文件没有标题,只有一列您要定义-header

上使用Import-CSV参数的名称