2013-07-12 118 views
0

我是Powershell的新手,第一次使用它。如何聲明並獲取數組值

我已經聲明瞭一個數組,並使用數組值,但使用下面的代碼,我無法檢索數組值...任何想法我在這裏失蹤?

僅供參考..我在Adobe Illustrator中執行腳本和測試,我在這裏的條件使用3(for循環)......將使用$array

$array = "a.jpg","b.jpg","c.jpg"; 

for ($i=1; $i-le=3; $i++) 
{ 
    $.writeln("This is line number " + $array[$i]); 
    var targetFileName = $array[$i]+'.png'; 
    $.writeln(targetFileName); 
} 

我試圖$array[$i].toString()以及,但仍沒有得到價值......我越來越0

任何幫助表示讚賞和感謝提前向所有對你的幫助

回答

3

for ($i=1; $i-le=3; $i++)

上述行中的條件沒有有效的比較運算符。將其更改爲

for ($i=1; $i -le 3; $i++) 

如果您希望循環在3個週期後終止。


$.writeln("This is line number " + $array[$i]);
var targetFileName = $array[$i]+'.png';
$.writeln(targetFileName);

這是無效的PowerShell。看起來更像我的JavaScript。在PowerShell中它或許應該是這樣的:

Write-Output "This is line number $i" 
$targetFileName = $array[$i] + '.png' 
Write-Output $targetFileName 

或更短

"This is line number $i" 
$array[$i] + '.png' 

注意,PowerShell的數組是從零開始,所以最後迭代($array[3])將從返回$null而不是元素陣列。如果你想遍歷數組中的元素,你應該你的循環改成這樣:

for ($i=0; $i -lt $array.Length; $i++) { 
    "This is line number $($i+1)" 
    $array[$i] + '.png' 
} 

或(更好的)管你的陣列成foreach循環:

$i = 0 
$array | % { 
    "This is line number " + ++$i 
    $_ + '.png' 
}