2016-10-18 3 views
0

エラーステータスファイルを作成するためのPowerShellスクリプトを作成しています。私が必要とする情報は、グローバル変数($info)で定義され、必要な正しい文字列を返しています。タイプはSystem.Stringです。機能はAdd-Contentの値を要求し、ディレクトリとして.txtファイルを扱います

function Add-Fail 
{ 
    $date = Get-Date -f "yyyy-MM-dd" 
    Add-Content \\Path\To\FailMonitor\${date}.txt $info 
} 

私もこのように変数を渡して試してみました:

function Add-Fail ($info) 
{ 
    $date = Get-Date -f "yyyy-MM-dd" 
    Add-Content \\Path\To\FailMonitor\${date}.txt $info 
} 

との情報が文字列である場合、このようにそれを呼び出す:

Add-Fail($info) 

この

Add-Fail -info $info 

これらの両方の場合、私は同じ出力は値を要求しています。値を入力すると、無限の配列の中で次のものが表示され続けます。私が入力せずにちょうどenterを押すと、情報がないエラーが表示され、間違った行番号の私のAdd-Content行を参照することさえできます。

出力(OUT編集ユーザ名):

cmdlet Add-Content at command pipeline position 1 
Supply values for the following parameters: 
Value[0]: 1 
Value[1]: 2 
Value[2]: 
Add-Content : The filename, directory name, or volume label syntax is incorrect. 
At C:\Users\********\Documents\Workspace\Error_Monitor.ps1:40 char:5 
+  Add-Content \\nserver\scsi\HPQ\FailMonitor\$date\ 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : WriteError: (\\nserver\scsi\...tor\2016-10-18\:String) [Add-Content], IOException 
    + FullyQualifiedErrorId : GetContentWriterIOError,Microsoft.PowerShell.Commands.AddContentCommand

あなたが見ることができるように、それはディレクトリとして私の日を指します。参考のために、私のAdd-Contentの式は45行目のchar 5にあります。私の.txtファイルはディレクトリとして認識され、それをそのまま扱います。テキストファイルはディレクトリではありません。私は変数をクリアしているので、変数の問題でもありません。私はまた、日付の周りに括弧を試みたが、それはどちらもうまくいかなかった。

なぜPowerShellはこのように動作しますか?私は何が欠けていますか?

+0

「ac」に渡す変数へのフルファイルパスを設定しようとしましたか? – Malk

+1

PowerShellを再起動してセッションをクリーンアップし、もう一度試してください。スクリプトファイルが保存されていることを確認してください。 – PetSerAl

+0

スクリプトの後に関数が初期化されたように見えます。 – hawkeye315

答えて

0
function Add-Fail ($info) 
{ 
    $date = Get-Date -f "yyyy-MM-dd" 
    $MyPath = '\\Path\To\FailMonitor\'+$date+'.txt' 
    Add-Content $MyPath $info 
} 

エラー処理では、ターゲットフォルダのテストパスにインクルードする必要があります。 HTH

関連する問題