我是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
感谢任何帮助,并提前感谢所有人的帮助
答案 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'
}