2016-11-29 5 views
0

Работая над простым скриптом, чтобы вытащить имена рабочих станций из файла .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" 
} 

Все работает идеально, пока не прочитает путь к файлу. Затем он отбрасывает ошибку, в которой говорится, что путь не существует.

ответ

2

Ваше строковое форматирование в порядке, проблема в том, что вы только что создали пустой массив с именем $results, а затем добавили его в строку при вызове. изменить последнюю строку

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

Обратите внимание, что выше предполагает, что файл не имеет заголовков и только один столбец, который вы определяете имя с помощью -header параметров на вашем бог Import-CSV

+0

, я даже не заметил, что он использовал пустую переменную там xD – 4c74356b41

+0

Отлично, большое вам спасибо. Я думал, что массив нужен для вытаскивания имен рабочей станции из файла. – Ozar

Смежные вопросы