尝试读取以逗号分隔的行的文件。我想读取每一行并拆分为数组,并使用数组值创建一个全局变量。
文件内容:
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
}
})
答案 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
。上面的原理相同。