タイトルを参照してください。
スクリプトの先頭に必要なパラメーターを指定しました。
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
Powershell ISE でスクリプトをデバッグしたい場合: これらのパラメーターを入力するにはどうすればよいですか?
タイトルを参照してください。
スクリプトの先頭に必要なパラメーターを指定しました。
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
Powershell ISE でスクリプトをデバッグしたい場合: これらのパラメーターを入力するにはどうすればよいですか?
コマンド ペインを使用します。ISE エディターでスクリプト ファイルを開き、ブレークポイント (F9) を設定します。次に、コマンド ペインで、必要なパラメーターを指定してこのスクリプトを呼び出すコマンドを入力します。ISE でこれを行う別の (組み込みの) 方法はないと思います。
別の方法があります。(v3 以降) 存在する自動変数を使用して、$PSDefaultParameterValues
コマンドレットと高度な関数に新しい既定の引数を提供できます (通常の関数では機能しません)。ただし、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
}
変数はハッシュテーブルであり、すべての標準構文が適用されますが、キーにはスクリプト (または高度な関数またはコマンドレット) の名前の後にコロンとパラメーター名が続く必要があります。複数のスクリプトまたはコマンドのデフォルトと、それぞれの複数のパラメーターを設定できます (各パラメーターは新しいテーブル エントリです)。
このようにすることで、ヒットF5するだけでスクリプトを通常どおり実行できます。パラメータは変数から取得されるため、何も入力する必要はありません。
コマンドでパラメーター$PSDefaultParameterValues
を指定しない限り、Get-History で最後の 10 エントリのみを取得するなど、他のユース ケースとしてカスタマイズが考えられます。エントリは現在のセッションでのみ保持されるため、プロファイル-Count
にカスタマイズを追加する必要があります。プロンプトで入力して詳細を読むか、 TechNetで同じ情報を表示できます。Get-Help about_Parameters_Default_Values