Powershell自定义对象

问题描述

   This data is store in a file

    AUTOM01-AYEHU1:No Updates Available
    AUTOM01-AYEHU2:No Updates Available
    AUTOM01-AYEHU3:No Updates Available
    AUTOM01-AYEHU4:No Updates Available
    AUTOM01-AYEHU5:No Updates Available
    AUTOM01-AYEHU6:No Updates Available
    
    

我在文件中有一个以上数据集,我需要创建2个名称为(SERVERNAME,STATUS)的powershell自定义对象,并将相应的数据放入其中。

之前:是服务器名,其余是状态

解决方法

如果您真的想要2个对象,这就是答案

$fileLines = @("AUTOM01-AYEHU1:No Updates Available","AUTOM01-AYEHU2:No Updates Available")

 $serverArray = [System.Collections.ArrayList]::new()
 $statusArray = [System.Collections.ArrayList]::new()
 foreach($fileLine in $fileLines)
 {
    $splittedLine = $fileLine.split(":")
    $serverArray.Add([PSCustomObject]@{ServerName=$splittedLine[0]})
    $statusArray.add([PsCustomobject]@{Status=$splittedLine[1]})
 }

在$ serverArray和$ statusArray中找到它们

,

如评论in your previous question所示,您只需完成

$result = (Get-Content -Path 'thefile.txt' -Raw) -replace ':','=' | ConvertFrom-StringData

ConvertFrom-StringData返回一个哈希表,默认情况下其中的各项是无序的。
由于您希望将顺序保持为输入文件中的顺序,因此可能要改用以下命令:

$result = Get-Content -Path 'D:\Test\thefile.txt' | ConvertFrom-String -Delimiter ':' -PropertyNames Server,Status

要返回PSCustomObjects数组:

Server         Status              
------         ------              
AUTOM01-AYEHU1 No Updates Available
AUTOM01-AYEHU2 No Updates Available
AUTOM01-AYEHU3 No Updates Available
AUTOM01-AYEHU4 No Updates Available
AUTOM01-AYEHU5 No Updates Available
AUTOM01-AYEHU6 No Updates Available