2017-07-07 3 views
0

Ich habe dieses PowerShell-Skript, das die Anzahl der Dateien in einem Verzeichnis überwacht. Hier ist sie:Wie kann ich die Anzahl eingehender und verarbeiteter Dateien in einem Verzeichnis mit PowerShell überwachen?

#sleep in seconds 
$SleepTimeOut = 300 

#start looping here 
Do{ 
    $path = 'TargetDirectory' 
    $stats = 0 
    $files = @(Get-ChildItem -Path $path -Filter '*.ZIP') 
    if ($files -ne $null) { 
      $stats = $files.Count 
      } else { 
    $msg = 'Message: No files' 
    Write-Output $msg 
    } 
    Get-Date | Out-File -Append 'C:\Monitoring\Logs.csv' 
    Write-Output "Count: $stats files" | Out-File -Append 'C:\Monitoring\Logs.csv' 

    Write-Output ".. Files COUNT in Progress...Please Don't Close ..`n" 
    sleep $SleepTimeOut 

} 
while ($Exit -ne $True) 

Es die Ergebnisse in eine CSV-Datei anhängt. Ich möchte nur wissen, ob es eine Möglichkeit gibt, eingehende und verarbeitete Dateien innerhalb der 5-minütigen Ruhezeit des Skripts zu überwachen. Jede Hilfe wäre sehr willkommen.

+1

Sie könnten 'IO.FileSystemWatcher' mit' Register-ObjectEvent' verwenden – BenH

+1

geben Sie einfach die '$ files' aus? – pandemic

+0

Dateiauflistung und Mengenprüfung sind was ich brauchte. Werde es definitiv versuchen. Vielen Dank! Ich werde nächste Woche zurückkommen, da ich nicht im Büro bin. :) – Didge

Antwort

0

Wie BenH erwähnt, können Sie versuchen, Ereignisse mit IO.FileSystemWather zu verwenden. Wenn diese Option für Sie nicht funktioniert, besteht die andere Möglichkeit darin, für den zu überwachenden Ordner GetChildItem zu verwenden und in jeder Datei nach dem LastWriteTime zu suchen. Führen Sie ab dem letzten Ausführen der Schleife eine Vergleichsprüfung durch, und dokumentieren Sie neue oder aktualisierte Dateien.

+0

Danke! Ich werde es auf jeden Fall ausprobieren und Ihnen Feedback geben. – Didge

Verwandte Themen