使用CSV文件中定义的变量

时间:2014-01-26 23:34:31

标签: powershell csv

我遇到一个问题,其中脚本已经包含用户设置的变量,例如:

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

我想在CSV文件中使用这些变量,并导入PowerShell识别变量的数据,并显示变量的值。例如(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字面上包含变量名称,而不包含已设置的变量中存储的内容。

无论如何我能达到我的目的吗?我尝试在$( )${ }@( )中包装变量名称但没有成功。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您必须使用ExpandString

$csv = Import-Csv .\Test.csv

$csv | % { 
    $_.description = $ExecutionContext.InvokeCommand.ExpandString($_.description); 
    $_.path = $ExecutionContext.InvokeCommand.ExpandString($_.path); 
    $_ 
    }