读取CSV文件,然后拆分值并创建全局变量

时间:2019-06-23 00:13:00

标签: powershell

尝试读取以逗号分隔的行的文件。我想读取每一行并拆分为数组,并使用数组值创建一个全局变量。

文件内容:

server1,component1,service1
server2,BatchProcessor2,service2
server3,BatchProcessor3,service3

我想在读取每一行时创建一个全局变量作为目录路径,如下所示。

$deployment.path = D:\server1\component1\service1
$deployment.path = D:\server2\component2\service2
$deployment.path = D:\server3\component3\service3

但是我得到的是空值。

代码:

$fileIn  = 'D:\Test\build.properties.dev'
(Import-Csv -Path $filein -Delimiter ',' -Header 'ServerName','ComponentName','ServiceName' | ForEach-Object {
    $deployment.path = D:\$_.ServerName\$_.ComponentName\$_.ServiceName
    if (!(Test-Path $deployment.path)) {
        New-Item -ItemType Directory -Force -Path $deployment.path
    }
})

1 个答案:

答案 0 :(得分:2)

这样做:

$csv = Import-Csv -Path 'D:\Test\build.properties.dev'

$csv | ForEach-Object {
    $path = "D:\$($_.servername)\$($_.componentname)\$($_.servicename)"
    if (!(Test-Path $path)) {
        New-Item -Itemtype Directory -Path $path -Confirm:$false -Force
    }
}

如果您的.csv没有标题,请添加它们。如果不能,请以编程方式进行。例如,您可以使用Tee-Object。上面的原理相同。