2016-02-09 65 views
3

我正在使用此命令在VMware虛擬機上設置註釋。Set-Annotation的2個輸入

Set-Annotation -entity $vm -CustomAttribute "Owner" -Value "$owner" 

我需要腳本在同一個循環中讀取2個輸入文件。一個用於實體名稱的輸入和一個用於該值的輸入。

如果我們做2文本文件,

file 1 = 
vm1 
vm2 
vm3 

file 2 = 
john 
bob 
ken 

我需要的腳本來完成:

Set-Annotation -entity vm1 -CustomAttribute "Owner" -Value "john" 

然後

Set-Annotation -entity vm2 -CustomAttribute "Owner" -Value "bob" 

我已經能夠得到不同的循環來運行,但沒有正確的。

+0

歡迎來到SO。請張貼您嘗試過的一些PowerShell循環,並瞭解它們實際產生的內容,以便我們可以提供更有針對性的響應。 – kdopen

+0

閱讀這兩個文件,並使用索引循環來引用每個文件數組中的字符串? – Matt

回答

0

嘗試以下操作:

# Read VM names and owners into parallel arrays. 
$vmNames = Get-Content 'file 1' 
$owners = Get-Content 'file 2' 

# Loop over the VM names with a pipeline and assign the corresponding owner 
# by array index, maintained in variable $i. 
$vmNames | % { $i = 0 } ` 
      { Set-Annotation -entity $_ -CustomAttribute "Owner" -Value $owners[$i++] } 

你可以直接使用Get-Content 'file 1'作爲管道的開始精簡本,而不需要收集數組變量$vmNames第一行。

+1

真棒,很好,謝謝! – JohnM