2014-01-26 2 views
0

У меня есть проблема, когда скрипт уже содержит переменные, заданные пользователем, например:Использование переменных, определенных в CSV файл

$_Name = "AU" 
$_Description = "AU Security" 

Я хочу использовать эти переменные в файле CSV и импорт данных, где PowerShell recongnises Переменные и отображает значение Переменные. Например (CSV):

ou,description,path 
Security,$_Country Security,"OU=$_Name,$_DomainDN" 
Servers,$_Country Servers,"OU=$_Name,$_DomainDN" 
Database,$_Country Database Servers,"OU=Servers,OU=$_Name,$_DomainDN" 

При импорте файла CSV, используя что-то вроде:

$csv - Import-Csv .\Test.csv 

CSV-импортируется, но переменная $csv буквально содержит имя переменной, а не то, что хранится в Переменная уже установлена.

Есть ли в любом случае я могу достичь того, чего хочу? Я попробовал обернуть имена переменных в $(), ${ } и @() без успеха.

Спасибо заранее!

ответ

0

Вы должны использовать ExpandString:

$csv = Import-Csv .\Test.csv 

$csv | % { 
    $_.description = $ExecutionContext.InvokeCommand.ExpandString($_.description); 
    $_.path = $ExecutionContext.InvokeCommand.ExpandString($_.path); 
    $_ 
    } 
Смежные вопросы