/ / Unterschied in Dateien und Ordnern zu zwei verschiedenen Zeiten (Windows) - Windows, Powershell, cmd.exe, NTFS

Unterschied in Dateien und Ordnern zu zwei verschiedenen Zeiten (Windows) - Windows, Powershell, cmd.exe, NTFS

Ich möchte sehen, wie viele Dateien und Ordner geändert wurden (einschließlich erstellt, gelöscht und geändert), Liste der geänderten Dateien und Ordner mit ihren Größe vorher und nachher.

Gibt es also ein Hilfsprogramm (oder ein Skript?), Das ich zu zwei verschiedenen Zeiten ausf√ľhren und dann den Unterschied feststellen k√∂nnte?

Antworten:

0 f√ľr Antwort ‚ĄĖ 1

Mit PowerShell ist es nicht allzu schwierig, nur einige Cmdlets zu kombinieren.

  • Get-ChildItem um den Ordner- / Dateibaum in ein Objekt zu bekommen,
  • mit Export-Clixml/Import-Clixml um ein Objekt in einer Datei zu speichern
    (Die XML-Dateien belegen etwas Platz.)
  • und Compare-Object um den aktuellsten mit dem aktuellen Baum zu vergleichen.

## Q:Test20181217SU_1385185.ps1
$Base = "C:Test"
$ArchiveFolder = $Env:tmp

function Archive-Tree {
$File = "{0}Tree_{1:yyyyMMddHHmmss}.CliXML" -f $ArchiveFolder,[datetime]::Now
Get-ChildItem -Path $Base -Recurse | Export-Clixml $File
$File
}

## ----- get most recent file Tree_*.clixml
$File = Get-ChildItem "$($Env:tmp)Tree_*.Clixml" | Select-Object -Last 1
if ($File){
$Old = Import-Clixml $File
$New = Import-Clixml (Archive-Tree)
Compare-Object -Ref $Old -Dif $New -Property FullName,
Length,LastWriteTime,CreationTime,LastAccessTime |
Sort-Object FullName,SideIndicator | Format-Table -AutoSize
} else {
$File = (Archive-Tree)
"No saved tree, now created as {0}" -f $File
}

Beispielausgabe

FullName              Length LastWriteTime       CreationTime        LastAccessTime      SideIndicator
--------              ------ -------------       ------------        --------------      -------------
C:testc_test.clixml 982258 2018-12-17 12:59:27 2018-12-17 12:59:24 2018-12-17 12:59:24 =>
C:testc_test.clixml      0 2018-12-17 12:59:24 2018-12-17 12:59:24 2018-12-17 12:59:24 <=
C:Testfoo.baz         1164 2018-12-17 13:55:05 2018-12-17 13:55:21 2018-12-17 13:55:21 =>

Das SideIndicator <= verweist auf das LHS oder -ReferenceObject ($OLD),
das SideIndicator => das RHS oder -DifferenzObjekt ($New).