0

関数の非標準エラー (間違った入力テキストなど) を管理しようとしています。変数に一種のログを書き込むことで、これらのエラーを追跡したいと考えています。行番号も書き込もうとしていますが、これが私のコードです

$someVar = "line $($MyInvocation.ScriptLineNumber): at least 2 arguments needed, function has been called with only $args.Count arguments"

正しい番号が返される場合と返されない場合があります。これは正しい方法ですか?別の方法はありますか?

編集:この問題は、特定のマシンでのアクセス許可の問題を回避するために使用するスクリプトを実行する型にはまらない方法に関連している可能性があることがわかりました。できるだけ早く、より詳細な例を投稿します

4

2 に答える 2

1

$() でラップしてみてください。例えば:

$someVar = "line $($MyInvocation.ScriptLineNumber): at least 2 arguments needed, function has been called with only $($args.Count) arguments"
于 2013-02-15T14:49:19.853 に答える
1

param関数で使用せず、必須にする理由はありますか?

Function A()
{
   Param
   (
      [Parameter(Mandatory=$true)][String]$Arg1,
      [Parameter(Mandatory=$true)][String]$Arg2
   )
   Write-Host "$Arg1 $Arg2"
}

この関数を引数なしで実行すると、必須の引数を要求するエラーがスローされます。

于 2013-02-15T11:36:18.530 に答える