2012-10-27 96 views
0

洙試圖做類似下面的PowerShell的嵌套變量

$計算機=獲取內容。\〜test.txt的

ForEach ($Computer in $Computers) { 
    $computer.Attempts += 1 
    $computer.result = Successful 
} 

++編輯++ 我想輸出是

$MyComputerName.Attempt += 1 
$MyComputerName.result 

因此,每臺計算機都有自己的名字,在腳本中創建一個基本表,這樣它就不必從文本文件中讀取一些信息。

其中$ computer是文本文件中的計算機名稱。我正在嘗試這樣做來創建一個檢查貴重物品的更快方法。

+1

您的代碼並沒有太大的意義。請更詳細地解釋你想達到的目標。 – vonPryz

回答

0

好吧,最終得到了這件事情想通了,是如下。 Import-CSV是爲每行創建一個新對象的絕佳工具。

$Computers = @(Import-CSV .\Computers.txt) 

ForEach ($Computer IN $Computers) { 
    Write-host $Computer.Name 
    Write-Host $Computer.IP 
    Write-Host $Computer.Other 
} 

Computers.txt:

52123-9421,123.123.123.123,yea 
HELLBOMBS-PC,123.123.123.123,yea 
52123-942dv,123.123.123.123,yea 
52123-942RM,123.123.123.123,yea 
0

如果我跟着你,你要爲每臺計算機創建新的對象:

$Computers = Get-Content .\~test.txt 

ForEach ($Computer in $Computers) { 
    New-Object PSObject -Property @{ 
     Name = $Computer 
     Attempts = 1 
     Result = 'Successful' 
    } 
} 
+0

那麼我如何調用該對象,說如果我想從中加載信息。讓我們稍後在腳本中說我想檢查$ Computer.result =是否成功? – user1451070

+0

將foreach循環分配給一個變量並使用數組索引來獲取它(在多個objects_的情況下)。另一種方法是創建一個哈希表,然後使用哈希表的'Key'名稱來引用該對象。 –