Quantcast
Viewing all articles
Browse latest Browse all 2314

Mehrere Pfade überprüfen

Hallo

Meine Powershell Kentnisse sind leider auch noch nicht so gut.
Goolge und co sind da meine meisten anlaufstellen ;-)

Ich habe hier ein Script das auch soweit funktioniert.
Nur weiß ich nicht wie ich das hinbekommen soll, daß man auch mehrere Pfade in dem Script Überprüfen könnte.

$Path = "c:\tmp"

$FileFilter = '*.cfg'  
$IncludeSubfolders = $true
$AttributeFilter = [IO.NotifyFilters]::FileName, [IO.NotifyFilters]::LastWrite 

$ChangeTypes = [System.IO.WatcherChangeTypes]::Changed
$Timeout = 1000

function Invoke-SomeAction
{
  param
  (
    [Parameter(Mandatory)]
    [System.IO.WaitForChangedResult]
    $ChangeInformation
  )
  
  Write-Warning 'Änderung erkannt:'
  $ChangeInformation | Out-String | Write-Host -ForegroundColor DarkYellow
  # send email
  Send-MailMessage –To "Email@domain.com" `–Subject ("ACHTUNG CFG DATEI " + $ChangeInformation.Name ,"GEÄNDERT!")`–Body ("CFG geändert $path\" + $ChangeInformation.Name)`–SmtpServer "smtp.com" `–From "noreplay@domain.com" `
                   -encoding ([System.Text.Encoding]::UTF8)
}

try
{
  $watcher = New-Object -TypeName IO.FileSystemWatcher -ArgumentList $Path, $FileFilter -Property @{
    IncludeSubdirectories = $IncludeSubfolders
    NotifyFilter = $AttributeFilter

  }

 do
  {
    $result = $watcher.WaitForChanged($ChangeTypes, $Timeout)
    if ($result.TimedOut) { continue }
    
    Invoke-SomeAction -Change $result
  } while ($true)
}




finally
{
  $watcher.Dispose()
  Write-Warning 'FileSystemWatcher removed.'
}

bisher habe ich erfahren, daß ich da Script so abändern könnte

$Path = $args[0]

Dann könnte ich das Script mit c:\test\Check.ps1 c:\tmp\ aufrufen. Nur dann würde ich ja bei 10 Pfaden auch 10 Programme laufen haben.
Ist es möglich das in das Script zu implementieren, damit man nur ein script am laufen hat aber mehrere Pfade überprüft?!


Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>