問題タブ [powershell-7.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - PS7.1 - カスタム関数でパイプライン チェーンをどのように使用しますか?
ドキュメントによると、PS 7 では||
やなどのパイプライン チェーン演算子が導入されてい&&
ます。
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_pipeline_chain_operators?view=powershell-7
そして、次のような C# スタイルの短絡操作を実行できるはずです。
Write-Error 'Bad' && Write-Output 'Second'
上記の例は機能します。また、ドキュメントには、パイプライン チェーン オペレーターが 2 つのフィールドを使用することが記載されています (正確にどのように機能するかは不明です) $?
。$LASTEXITCODE
これらを自分の関数に適用するにはどうすればよいですか?
例えば:
no && yes
次を実行して、次の出力を確認できるはずだと思います
いいえ
間違い
しかし、代わりに私は見る
いいえ
間違い
はいと呼ばれる
真実
では、パイプライン チェーンとショート サーキットを使用できるように機能を開発するにはどうすればよいでしょうか。
編集:短絡するカスタム関数を構築するために今すぐ理解できる唯一の方法は&&
、それを作ることthrow
ですが、それは一般的なケースではあまり役に立ちません。
regex - ロギングと正規表現フィルタリングに関する Powershell 5.1 と 7.0 の違い
このスクリプトが Powershell v5.1 と v7.0 で異なる結果を返すのはなぜですか?
文字列を抽出コードにパイプするだけにそれを取り除くと、機能します。
powershell - VS Code PowerShell ターミナルが新しいドライブをマップするのはなぜですか?
コマンドを使用する Visual Studio Code で PowerShell スクリプトを作成していましたが、驚いたことに、VS Code を使用しているときに、私のドライブとGet-PSDrive
同じ新しいドライブが表示されたように見えました。C:\
Temp
私が知る限り、この結果にはびっくりしました。メイン ドライブ以外に 2 台のドライブしかC:\
接続されていませんでした。これを他の端末で複製しようとしましたが、PowerShell 7 を除いて成功しませんでした:
PwSh 7 によって複製されたことがわかったので、$host
変数を使用して各 PowerShell のバージョンを確認することにしました。さらに予想外のことがわかりました。
Windows ターミナル PowerShell 5.1
パワーシェル 5.1
PowerShell 5.1 (86x)
PowerShell 7 (86x)
Windows ターミナル PowerShell 7
これはすべて正常に見えましたが、 VSCode を確認すると$host
、結果が得られました
の出力の違いの原因は何ですか
PwSh 7、PowerShell 5.1、および VS Code PwSh の間?