Ich arbeite mit einem Skript zum Abrufen eines Ordners. Sobald eine Datei in diesem Ordner abgelegt wurde, wird eine E-Mail an einen Empfänger gesendet.Warum ist meine lokale Variable null?
Hier ist der Code:
$folder = "D:\\temptest"
$filter = "*.txt"
$fsw = New-Object System.IO.FileSystemWatcher $folder, $filter -Property @{
IncludeSubDirectories = $false
NotifyFilter = [System.IO.NotifyFilters]'FileName, LastWrite'
}
$actionToRun = {
$path = $Event.SourceEventArgs.FullPath
$name = $Event.SourceVentArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host $name # --> Here $name contains the file name
$Recipient = "Peter Rundqvist <to address>"
$Sender = "SocSupport <from address>"
$Subject = "New document"
$Body = $name # --> But here, $name is null
Send-MailMessage -To $Recipient -From $Sender -Subject $Subject -Body $Body -SmtpServer "some mail server"
}
$onCreated = Register-ObjectEvent -InputObject $fsw -EventName Created -SourceIdentifier FileCreated -Action $actionToRun
Warum ist es, dass $name
kann nicht als Parameter in der Send-MailMessage
verwendet werden (es dehnt sich als null), während sie als Parameter in Write-Host
funktioniert gut mit?
Danke, Chris! Ich weiß nicht, wie ich das verpasst haben könnte ... Du hast meinen Tag gerettet! –