4

ここまで考えるのが苦手です。宣言されたすべてのパラメーターが設定時に明示的な名前付けを必要とし、$args 変数から名前のないものを取得したい場合、どうすればよいでしょうか?

私のスクリプトが次のパラメータを宣言した場合:

param($installdir, $compilemode, $whatever) 

次に、ファイルのリストを渡すと (この場合、インストール ディレクトリやコンパイル モードなどを指定したくありません)、最初の 3 つのパラメーターで引数が無駄になります。だから、私は渡したい:

c:\> MyScript file-1.cs file-2.cs file-3.cs file-4.cs 

$args の 4 つの文字列をすべて取得するか、次のように呼び出します。

c:\> MyScript -CompileMode simple file-1.cs -InstallDir c:\temp file-2.cs

2 つのファイルを含む $args を使用して $compilemode と $installdir の値を取得します...どうすればそれを行うことができますか?

4

1 に答える 1

5

わかりました。次のように宣言します。

param(
   $installdir, 
   $compilemode, 
   $whatever, 
   [Parameter(Position=0, ValueFromRemainingArguments=$true)] $args
   )

@latkin に感謝します。これは、Powershell の非位置、オプションのパラメーターで既に回答済みです。

于 2013-09-18T00:19:59.857 に答える