2013-05-15 24 views
1

剛剛開始學習循環和數組。我知道如何調用一個變量數組即:試圖找出如何調用powershell中的兩個變量

$animals = gc "c:\temp\animals.txt" 
foreach ($animal in $animals) 
{write-host "The"$animal "sleeps tonight."} 

什麼,我試圖找出是如何調用兩個不同的變量來自兩個不同陣列...即:

$animals = gc "c:\temp\animals.txt" 
$colors = gc "c:\temp\colors.txt" 

這是我感到困惑的部分。我如何調用一個foreach循環來同時循環兩個文件?

所需的輸出:白色獅子今晚睡,黑豹今晚睡,等...

回答

2

一種方法是使用ARRY索引。假設這兩個文件具有相同的行數:

$animals = gc c:\temp\animals.txt 
$colors = gc c:\temp\colors.txt 

for($i=0; $i -lt $animals.length; $i++) 
{ 
    #print first line from animals 
    $animals[$i] 

    #print first line from colors 
    $colors[$i] 
} 
+0

感謝你們倆(與同樣沒有條目。)你的建議。謝謝,它看起來像$ i表示文件中的行號。 $ i如何與$ animals.length關聯?另外,是否有一個關於變量上的那個參數「.length」的幫助文件?如何找出它的用途以及字符串值是否有其他參數?最後一件事,什麼是-lt開關用於?少於?除此之外,代碼完美地工作。必須安排它以適應我的需求,但它確實能完成這項工作。再次謝謝謝伊! – OneDownFiveUp

+0

是的,$ i是指行號。長度是指示集合中對象數量的集合(數組)的屬性。找到對象的最佳方法是將其傳遞給Get-Member cmdlet。 -lt是小於運算符,只要當前行號小於文件行數(長度),就希望for語句運行。請記住,我們從0開始計數。 –

+0

感謝您的解釋謝伊!乾杯。 – OneDownFiveUp

0

假設你有兩個文本文件在C:\你可以寫這樣的事情 -

$c = 0 
$animal = Get-Content C:\Animal.txt 

Get-Content C:\Color.txt | Foreach-Object{ 
    Write-Host "The $_ $($animal[$c]) sleeps at night" 
    $c++ 
} 
相關問題