如何声明和获取数组值

时间:2013-07-12 16:19:09

标签: powershell

我是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

感谢任何帮助,并提前感谢所有人的帮助

1 个答案:

答案 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'
}