[解決済み] コマンドプロンプトからPowerShellスクリプトにブーリアン値を渡す方法
2022-01-31 05:21:48
質問内容
バッチファイルからPowerShellスクリプトを呼び出す必要があります。スクリプトの引数の1つは、ブール値である。
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -File .\RunScript.ps1 -Turn 1 -Unify $false
以下のエラーでコマンドは失敗します。
Cannot process argument transformation on parameter 'Unify'. Cannot convert value "System.String" to type "System.Boolean", parameters of this type only accept booleans or numbers, use $true, $false, 1 or 0 instead.
At line:0 char:1
+ <<<< <br/>
+ CategoryInfo : InvalidData: (:) [RunScript.ps1], ParentContainsErrorRecordException <br/>
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,RunScript.ps1
今のところ、私はスクリプト内で文字列からブーリアンへの変換を使用しています。しかし、PowerShellにboolean引数を渡すにはどうしたらよいでしょうか?
どのように解決するのですか?
の場合、powershell.exe はスクリプトの引数を完全に評価しないようです。
-File
パラメータが使用されています。特に
$false
引数は、以下の例と同様に、文字列値として扱われます。
PS> function f( [bool]$b ) { $b }; f -b '$false'
f : Cannot process argument transformation on parameter 'b'. Cannot convert value
"System.String" to type "System.Boolean", parameters of this type only accept
booleans or numbers, use $true, $false, 1 or 0 instead.
At line:1 char:36
+ function f( [bool]$b ) { $b }; f -b <<<< '$false'
+ CategoryInfo : InvalidData: (:) [f], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,f
を使う代わりに
-File
を試してみてください。
-Command
この場合、呼び出しはスクリプトとして評価されます。
CMD> powershell.exe -NoProfile -Command .\RunScript.ps1 -Turn 1 -Unify $false
Turn: 1
Unify: False
として デビッド また、switch 引数を使用すると、明示的に boolean 値を渡す必要がなくなるため、呼び出しが簡単になり、よりイディオム的になります。
CMD> powershell.exe -NoProfile -File .\RunScript.ps1 -Turn 1 -Unify
Turn: 1
Unify: True
関連
-
[解決済み] コマンドプロンプトからPowerShellスクリプトにブーリアン値を渡す方法
-
[解決済み] GDBデバッグセッションを自動化する最も良い方法は何ですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
-
[解決済み】PowerShellスクリプトを実行する方法
-
[解決済み】スクリプト言語 vs プログラミング言語【終了しました
-
[解決済み】文字列から任意のネイティブコマンドを実行する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン