satocchiaブログ
2026
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月
全1件 (1件中 1-1件目)
1
powershellの関数やスクリプトで可変個の引数を利用する場合、組み込み変数$ARGSでパラメーターにアクセスできます。大抵はそれでいいんだけど、困ったことが起きました。一部の引数のみ必須にして、残りは可変個というのがどうもうまくできないんです。function foo{ param( [parameter(mandatory=$true)]$MustArg ) "Mandatory Argument=$MustArg" "Other Arguments=$ARGS"}foo abc def ghiとやると、「引数 'def' を受け入れる位置指定パラメーターが見つかりません。」のエラーが。mandatoryとか関係なく、[parameter()]を付けると、その関数(スクリプト)に余計な引数を与えるとエラーになるようです。あちこちググって、参考サイトを見つけました。function hoge{ param( [parameter(mandatory=$true)][string]$FirstArg, [parameter(ValueFromRemainingArguments=$true)]$others ) $others}[parameter(ValueFromRemainingArguments=$true)]$othersというのが肝。残りの引数が、$others[]配列に入ってくれます。一方、$ARGSは空っぽのままのようです。
2020.03.12
コメント(0)