1. ホーム
  2. powershell

パイプライン入力を受け付けるPowerShellスクリプトを書くには?

2023-08-29 07:03:37

質問

パイプライン入力を取得できる (そしてそれを期待されている) PowerShell スクリプトを書こうとしているのですが、次のようなことを試しています。

ForEach-Object {
   # do something
}

は、以下のようにコマンドラインからスクリプトを使用しても、実際には動作しません。

1..20 | .\test.ps1

方法はありますか?

注:私は関数とフィルタについて知っています。これは私が探しているものではありません。

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

これは動作しますが、おそらく他の方法があります。

foreach ($i in $input) {
    $i
}

17:12:42 PS>1..20| .ⅷcmd-input.ps1

1

2

3

-- スニップ --

18

19

20

"powershell $input variable"で検索すると、より多くの情報と例を見つけることができます。

いくつかここにあります。

PowerShell関数とフィルタ PowerShell Pro!

(「PowerShell 特殊変数 "$input" の使用」のセクションを参照してください)

スクリプト、関数、およびスクリプト ブロックはすべて、入力されるパイプラインの要素に対する列挙子を提供する $input 変数にアクセスすることができます。

または

$input gotchas " ドミトリーのPowerBlog PowerShellとそれ以外

"...基本的に$inputは、あなたが持っているパイプラインへのアクセスを提供する列挙体である"。

PS のコマンドラインについては <ストライク DOS コマンドライン Windows コマンド プロセッサです。