ちゃっぴの監禁部屋

ガチガチに締めすぎて動きがとれなくなる。。。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  292  : 記事  5  : コメント  634  : トラックバック  78

ニュース

あわせて読みたい

記事カテゴリ

書庫

日記カテゴリ

Communities

めちゃくちゃ気持ち悪いんですけど。

function WriteEventEntry(
	  [System.String] $strMessage
	, [System.Diagnostics.EventLogEntryType] $logType = 'Error')
{
	Set-Variable -Name 'strSource' -Value 'Test' -Option 'Constant';
	Set-Variable -Name 'strLogName' -Value 'Application' -Option 'Constant';
	
	$eventlog = New-Object `
		-TypeName 'System.Diagnostics.EventLog' `
		-ArgumentList $strLogName;
	$eventlog.Source = $strSource;
	$eventlog.WriteEntry($strMessage, $logType);
}

こんな関数書いたんですが、なんで下記のようによびださなければならないの?

WriteEventEntry 'Message' 'Information'

こうゆう呼び出しできるようにしてほしいんですけど

WriteEventEntry 'Message' [System.Diagnostics.EventLogEntryType]::Information

なんで、文字列で指定するの?

投稿日時 : 2008年5月23日 2:53

コメント

# re: PowerShell での Enumeration 2008/05/23 10:30 よこけん
はじめまして、よこけんと申します。

なぜか [System.Diagnostics.EventLogEntryType]::Information が文字列として認識されるようですね。
() や $() で囲んで指定するか、予め変数に格納して変数を指定するかすれば列挙値を渡すことができます。

# re: PowerShell での Enumeration 2008/05/23 12:10 牟田口大介
式モードとコマンドモードを早く体得すると幸せになれます
説明あるけど読んでもたぶん分からない・・

# re: PowerShell での Enumeration 2008/05/23 12:36 よこけん
> 説明あるけど読んでもたぶん分からない・・
以前読んだけれどわからなかったクチです^^;
今読み返してようやくわかりました。
関数呼び出しは文字で始まって文字または空白が続くから、コマンドモードになるんですね。

# re: PowerShell での Enumeration 2008/05/25 16:01 ちゃっぴ
こういうのがあるとお手軽に見えて、実際は複雑性を高めているしか思えないんですけど。

Post Feedback

タイトル
名前
Url:
コメント