ファイルが最大サイズに達すると電子メールを送信するスクリプトがあります。PowerShellスクリプトでのテストパスの配置
問題は、特定のパスにファイルが見つからないときにスクリプトが行うべきことの検証チェックを実装できないということです。
if(!(Test-Path $item.Path))
{
"The file " + $item.Name + " is not found! <br />"
}
しかし、(私はすべての場所でエラーを取得していますので)私はまさにそれをどこに配置するかわからない:
は私が実装しなければならないことを知っています。
コード:
foreach ($item in $list)
{
if($item.Size -gt $item.TriggerSize -And (Test-Path $item.Path))
{
#Write-Host $item.Name "Warning! File has reached it's max limit ("$item.Size.ToString(".00")"), The max size is" $item.MaxSize". The trigger size is: " $item.TriggerSize "`r`n"
$body +=
"The file " + $item.Name + " is reaching his max size!
<br /> Current size: <b>"+$item.Size.ToString(".00") + " " + $byteSize.Substring(1) + "</b>" +
"<br /> Maximum size: " + $item.MaxSize + " " + $byteSize.Substring(1) + "<br /><br />"
}
}
:
$list = foreach ($file in $files)
{
$f = Get-Item $file.Path
New-Object -Type PSObject -Property @{
Name = $f.Name
Path = $file.Path
Size = ($f.Length/$byteSize)
}
}
が、私は、ファイルのリストをループしてその大きさを確認してください。私は、configファイルからファイルを取り出すで始まる
私はこれらの場所でエラーチェックを実装しようとしました:
$list = foreach ($file in $files)
{
if(!(Test-Path $item.Path))
{
"The file " + $item.Name + " is not found! <br />"
}
$f = Get-Item $file.Path
New-Object -Type PSObject -Property @{
Name = $f.Name
Path = $file.Path
Size = ($f.Length/$byteSize)
}
}
、ここ
foreach ($item in $list)
{
if($item.Size -gt $item.TriggerSize -And (Test-Path $item.Path))
{
#Write-Host $item.Name "Warning! File has reached it's max limit ("$item.Size.ToString(".00")"), The max size is" $item.MaxSize". The trigger size is: " $item.TriggerSize "`r`n"
$body +=
"The file " + $item.Name + " is reaching his max size!
<br /> Current size: <b>"+$item.Size.ToString(".00") + " " + $byteSize.Substring(1) + "</b>" +
"<br /> Maximum size: " + $item.MaxSize + " " + $byteSize.Substring(1) + "<br /><br />"
}
if(!(Test-Path $item.Path))
{
"The file " + $item.Name + " is not found! <br />"
}
}
しかし、私はそれはそれはファイルを見つけることができないことをGet-Item
でだとエラーを取得しておく:
私は偽のパスを書いたファイルの名前目的: file123.exe
エラー(if(!(Test-Path $file.path))
の行で:
Get-Item: 'file123.exe'が存在しないため、パスが見つかりません。
PSコンソールに表示される正確なエラーをここに貼り付けます。ファイルが存在してもGet-Itemが失敗するということですか? '$ files'と' $ list'はどのように設定されていますか? – niksofteng
がエラーを追加しました。すべてがうまく動作しませんが、ファイルが存在しないときに 'キャッチ'しようとしています –
'$ files'と' $ list'の内容は何ですか?文字列? FileInfoオブジェクト?他に何か? –