エラーステータスファイルを作成するための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はこのように動作しますか?私は何が欠けていますか?
「ac」に渡す変数へのフルファイルパスを設定しようとしましたか? – Malk
PowerShellを再起動してセッションをクリーンアップし、もう一度試してください。スクリプトファイルが保存されていることを確認してください。 – PetSerAl
スクリプトの後に関数が初期化されたように見えます。 – hawkeye315