2016-05-04 20 views
0

私はその後、私は、各ファイル動的変数値

function output { 
    $TYPE = $args[0] 
    $MESSAGE = $args[1] 
    switch ($TYPE) { 
     message {"message test "+$MESSAGE >> $LOGFILE} 
     error {"error test "+$MESSAGE >> $LOGERROR} 
    } 
} 
への書き込みに switchを使用する顧客名に基づいて

$CS_NAME="" 
$LOGFILE=-join ($LOGDIR,"\",$VER,"_",[ref]$CS_NAME,"_",$TODAY,".log") 
$LOGERROR=-join ($LOGDIR,"\","ERROR-",$VER,"_",[ref]$CS_NAME,"_",$TODAY,".log") 

をログファイルとそれが名の変更エラーファイルを分離しようとしています

問題は、私がテストしていません。この

COMPARE_System.Management.Automation.PSReference_2016184.log 
ERROR-COMPARE_System.Management.Automation.PSReference_2016184.log
+0

'[ref] $ CS_NAME'はどうするのですか? –

+1

なぜ '$ CS_Name'ではなく' [ref] $ CS_Name'を使用していますか? – Martin

+1

あなたのスクリプトでこれらの変数を使うときはいつも '$ LOGFILE'と' $ LOGERROR'が '$ CS_NAME'をその現在の値に展開することを期待していますか?これはこの/変数が動作しないためです。 –

答えて

0

これを行うための簡単な方法のように配列$ CS_NAME [$ i]にして[参照] $のCS_NAMEを置換することです。

この配列では、値はスクリプトのどこでも使用でき、変更が容易です。

0

のようなファイル名を取得していますということですが、あなたはSを試みることができますomething私のテストでは、この

$LOGDIR = 'c:' 
$VER = '2.5' 
$TODAY = Get-Date -f s 

function LOGFILE { 
    "$LOGDIR\$VER`_$CS_NAME`_$TODAY.log" 
} 

function LOGERROR { 
    "$LOGDIR\ERROR-$VER`_$CS_NAME`_$TODAY.log" 
} 

function output { 
    $TYPE = $args[0] 
    $MESSAGE = $args[1] 
    switch ($TYPE) { 
     message {"message test $MESSAGE" | Add-Content LOGFILE} 
     error {"error test $MESSAGE" | Add-Content LOGERROR} 
    } 
} 
+0

こんにちは、あなたの答えに感謝します。問題は、$ CS_NAMEが実行中に数回更新されることです。それと同じように、私はいつも最初の価値を持っています。 –