0

Powershell を初めて使用する初心者です。

配列を宣言して配列値を使用していますが、以下のコードを使用すると、配列値を取得できません...ここで何が欠けているのか分かりますか?

参考までに..私はADOBE ILLUSTRATORでスクリプトを実行しており、テストのためにここで条件(forループ)で3を使用しています...$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 に答える