Fehler Compare-Object
Hi,
ich will zwei Verzeichnisse miteinander vergleichen. Hierzu bin ich auf diesen Befehl gestoßen der in verschiedenen Tutorials auch funktioniert.
Dann bekomme ich folgende Fehlermeldung:
Kann mir jemand einen Tipp geben?
Danke
ich will zwei Verzeichnisse miteinander vergleichen. Hierzu bin ich auf diesen Befehl gestoßen der in verschiedenen Tutorials auch funktioniert.
Compare-Object -ReferenceObject (Get-ChildItem -Recurse -Path C:\temp\test1) -DifferenceObject (Get-ChildItem -Recurse -Path C:\temp\test2) -CaseSensitive
Dann bekomme ich folgende Fehlermeldung:
Compare-Object : Das Argument kann nicht an den Parameter "DifferenceObject" gebunden werden, da es NULL ist.
In C:\Temp\Vergleichen.ps1:1 Zeichen:98
+ ... ) -DifferenceObject (Get-ChildItem -Recurse -Path C:\temp\test2) -CaseSe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Compare-Object], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObjectCommand
Kann mir jemand einen Tipp geben?
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4661680572
Url: https://administrator.de/contentid/4661680572
Ausgedruckt am: 24.11.2024 um 13:11 Uhr
8 Kommentare
Neuester Kommentar
Also in diesemTutorial werden die Pfade bzw. die Child-Items dazu zuerst in Variablen gespeichert und dann die Variablen aufgerufen.
Wäre mal eine Idee
Wäre mal eine Idee
Man macht das in einzelne Variablen, damit man bei einem Fehler nachschauen kann, was in der Variablen steht. So kann man jeden einzelnen Schritt nachkontrollieren und schauen, wo genau der Fehler ist.
<da es NULL ist> bedeutet, daß die Variable nichts enthält, was darauf schliessen lässt, daß Deine angegebenen Pfade nicht korrekt sind und deswegen Get-Childitem kein Ergebnis liefert.
<da es NULL ist> bedeutet, daß die Variable nichts enthält, was darauf schliessen lässt, daß Deine angegebenen Pfade nicht korrekt sind und deswegen Get-Childitem kein Ergebnis liefert.
die Verzeichnis sind aber nicht leer
Aber die Pfade laut deinen Screenshots falsch. "test" statt "temp"Des weiteren wirst du beim rekursive Vergleich so eh nur Unterschiede haben weil es zwei unterschiedliche Verzeichnisse mit unterschiedlichen Pfaden sind musst du schon relative daraus machen und compare-object sagen was es von den Properties vergleichen soll.
$Quelle = 'C:\temp\test1'
$Ziel = 'C:\temp\test2'
$QuelleFiles = Get-ChildItem -Recurse -Path $Quelle | select @{n='Pfad';e={$_.Fullname -replace ([regex]::escape($quelle))}},Length,LastWriteTime
$ZielFiles = Get-ChildItem -Recurse -Path $Ziel | select @{n='Pfad';e={$_.Fullname -replace ([regex]::escape($ziel))}},Length,LastWriteTime
COMPARE-OBJECT -ReferenceObject @($QuelleFiles) -DifferenceObject @($Zielfiles) -property Pfad,Length,LastWriteTime
Denk dann noch bitte daran deinen Beitrag auf gelöst zu setzen