Quantcast
Viewing all articles
Browse latest Browse all 2314

Namen und Datum vergleichen

Hallo,

zu Beginn muss ich leider gestehen, das ich in Sachen Scripting und der ganzen Powershell Thematik noch recht weit am Anfang stehe und sich daher schon blöde Fehler eingeschlichen haben könnten oder ich einfach auf dem Schlauch stehe.

Ich möchte ein Skript schreiben welches den Inhalt zweier Ordner vergleicht und bei Übereinstimmung im Dateinamen und bei einer "neueren" LastWriteTime diese Datei in einen Ordner kopiert bzw. überschreibt. Daten die noch nie davor im Test2-Ordner waren sollen unberücksichtigt sein.

Test1-Ordner:  Hier werden die Dateien hinzugefügt (Inhalt: Test1.txt)

Test2-Ordner:  Hierhin sollen die Dateien kopiert werden, bzw. die alten überschrieben werden.

Dieser Ordner ist mit den Dateien Test1.txt, Test2.txt und Test3.txtgefüllt.

Mein Skript sieht bisweilen so aus.

$Folder1Path = 'C:\Users\...\Desktop\Test1'
$Folder2Path = 'C:\Users\...\Desktop\Test2'

$Folder1Files = Get-ChildItem -Path $Folder1Path
$Folder2Files = Get-ChildItem -Path $Folder2Path

$FileDiffsName = Compare-Object -ReferenceObject $Folder1Files -DifferenceObject $Folder2Files -includeequal

$FileDiffs | foreach {
    $copyParams = @{
        'Path' = $_.InputObject.FullName
        }
        if ($_.SideIndicator -eq '==' -and $Folder1Path.LastWriteTime -gt $Folder2Path.LastWriteTime)
        {
        $copyParams.Destination = $Folder2Path
        Copy-Item @copyParams -force -passthru | foreach{$_.FullName; $len += ($_.length/1KB);};
        Write-Host $len "Bytes kopiert"; $len=0;
        }
        else
        {
            Write-Host "keine Übereinstimmung im Namen"
        }
        }

Ausgabe:

keine Übereinstimmung im Namen
keine Übereinstimmung im Namen
keine Übereinstimmung im Namen

Mein Problem ist die Abfrage der Zeit und diese zu Vergleichen. Kann mir da jemand helfen?

Vielen Dank!

Gruß Nrude


Viewing all articles
Browse latest Browse all 2314


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