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

任何帮助表示赞赏,并提前感谢大家的帮助

4

1 回答 1

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'
}
于 2013-07-12T17:05:10.647 回答