1. ホーム
  2. powershell

[解決済み] 複数行のコマンドを入力する方法

2022-03-18 12:11:10

質問

PowerShellのコマンドラインを複数行に分割することは可能でしょうか?

Visual Basicでは、アンダースコア( _ ) で、次の行にコマンドを続けることができます。

どのように解決するのですか?

スペースに続いてグレイヴアクセント(バックティック)を使用することができます。

Get-ChildItem -Recurse `
  -Filter *.jpg `
  | Select LastWriteTime

しかし、これが必要なのは、上記のような場合だけです。通常は、コマンドをその時点で構文的に完了できない場合に、自動的に行が継続されます。これには、新しいパイプライン要素の開始も含まれます。

Get-ChildItem |
  Select Name,Length

は問題なく動作します。 | は、パイプラインの要素がもう一つ欠けているので、コマンドを完了することができません。また、中括弧や他の種類の括弧を開くと、行の継続が直接可能になります。

$x=1..5
$x[
  0,3
] | % {
  "Number: $_"
}

と同様に | カンマも文脈によっては有効です。

1,
2

ただし、JavaScriptの セミコロンの自動挿入 という箇所で改行されるため、同じように改行されるものがあります。 の前に有効なステートメントがあります。

return
  5

は動作しません。

最後に、文字列は(あらゆる種類の)一行からはみ出ることもあります。

'Foo
bar'

文字列の中の改行も含まれるんですね。