0

pwshコアから新しいpowershellセッションを開始して、powershell 5.1で実行するように設計されたコードを実行したいと考えています(バージョンテーブルをチェックします)。

スクリプト ブロックを正常に実行できますが、変数値を pwsh セッションから新しいセッションに渡したいと考えています。

機能しない例は次のとおりです。

7.0.3: >_ $block = {param($name)Write-Host "Hello, $name. How are you?"}
7.0.3: >_ start powershell -argumentlist "-noexit $block 'friend'"

新しいウィンドウが開きます:

5.1: >_ Hello,  . How are you? friend
5.1: >_ 

ただし、これを本格的な.ps1スクリプトでラップすると、問題なく動作するようです。

4

1 に答える 1

0

ほとんどの場合、$block変数は新しいスコープで定義されていません。これは機能します。

start powershell -ArgumentList '-noexit & {param($name)Write-Host "Hello, $name. How are you?"} friend'

& 呼び出しメソッドを使用しましたが、 を使用することもできます。

start powershell -ArgumentList '-noexit . {param($name)Write-Host "Hello, $name. How are you?"} friend'

新しいコンソールでの出力

Hello friend . How are you?
于 2020-09-11T05:53:54.977 に答える