タイトルを参照してください。
スクリプトのヘッドで必要なパラメーターを指定しました。
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
Powershell ISEでスクリプトをデバッグする場合:これらのパラメーターを入力するにはどうすればよいですか?
コマンドペインを使用します。 ISEエディターでスクリプトファイルを開き、ブレークポイント(F9)を設定します。次に、コマンドペインで、必要なパラメーターを指定してこのスクリプトを呼び出すコマンドを入力します。 ISEでこれを行う別の(組み込みの)方法はないと思います。
別の方法があります。 _$PSDefaultParameterValues
_自動変数を使用して(v3以降)存在し、コマンドレットとadvanced関数に新しいデフォルト引数を提供できます(しません)通常の機能で動作します)。ただし、ISEでデバッグする場合でも、スクリプトに対しては機能します。高度な関数の場合と同様に、[CmdletBinding()]
または[Parameter()]
を宣言する必要があります。
あなたの例では、
_[CmdletBinding()]
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
_
iSEプロンプトで次のようなものを実行します。
_$PSDefaultParameterValues.add("ExampleScript.ps1:G_ARCHIVE","File-to-upload.txt")
$PSDefaultParameterValues.add("ExampleScript.ps1:G_LOGFILE","Example.log")
_
実行時に自動実行されるスクリプトブロックにパラメーター値を設定することもできます。
_$PSDefaultParameterValues["ExampleScript.ps1:G_LOGFILE"]={
"Example-{0:yyMMddHHmm}.log" -f [datetime]::Now
}
_
変数はハッシュテーブルであり、すべての標準構文が適用されます。ただし、keyには、スクリプト(または高度な機能またはコマンドレット)の名前とそれに続くコロン、次にパラメーター名。複数のスクリプトまたはコマンドにデフォルトを設定し、それぞれに複数のパラメーターを設定できます(各パラメーターは新しいテーブルエントリです)。
このようにすることで、ただヒットすることができます F5 通常のようにスクリプトを実行します。パラメーターは変数から取得されるため、何も入力する必要はありません。
_$PSDefaultParameterValues
_のその他の使用例は、コマンドで_-Count
_パラメーターを指定しない限り、Get-Historyが最後の10エントリのみを取得するようにカスタマイズすることです。エントリは現在のセッションでのみ保持されるため、 profile にカスタマイズを追加する必要があります。プロンプトで_Get-Help about_Parameters_Default_Values
_と入力して詳細を読むか、 TechNet で同じ情報を表示できます。