robx
Goto Top

Rekursiv Dateien mit identischen Namen, unterschiedlicher Endung und älterem Editier-Datum verschieben

Hallo,
ich will:
Finde rekursiv alle odt und doc Dateien, wo NAME.odt = NAME.doc
UND
Finde rekursiv alle ods und xls Dateien, wo NAME.ods = NAME.xls
Output die jeweilige Datei mit dem älteren Editier-Datum nach $env:tmp\00_Log
UND
verschiebe die jeweilige Datei mit dem älteren Editier-Datum nach $env:tmp\00_Test_RESULT

Get-ChildItem -Path $env:tmp\00_PS\00_Test -name -Recurse -Force -Include '*.ods','*.xls','*.odt','*.doc' |   
Ich komme hier nicht weiter:
$lastModifiedDate = (Get-Item "??XX??").LastWriteTime  
$dateA= $lastModifiedDate 
$dateB= (Get-Item "??YY??").LastWriteTime  

if ($dateA -ge $dateB) {
  Write-Host("??XX??" .....)  
} else {
  Write-Host("??XX??" .....)  
}

Hat jemand einen Tip ?
Danke.

Content-ID: 451741

Url: https://administrator.de/contentid/451741

Ausgedruckt am: 25.11.2024 um 05:11 Uhr

139708
Lösung 139708 15.05.2019 aktualisiert um 20:56:52 Uhr
Goto Top
md "$env:tmp\00_Test_RESULT" -force | out-null  
dir "$env:tmp\00_PS\00_Test" -File -Recurse -Include '*.ods','*.xls','*.odt'.'*.doc' | Sort LastWriteTime | group Basename | ?{$_.Count -gt 1} | %{  
    $_.Group | select -First 1 | move-item -destination "$env:tmp\00_Test_RESULT" -Verbose  
}
robx
robx 16.05.2019 um 13:01:49 Uhr
Goto Top
War n kleiner Dreher drin, klappt jetzt prima, vielen Dank!
md "$env:tmp\00_PS\00_Test_RESULT" -force | out-null  
dir "$env:tmp\00_PS\00_Test" -File -Recurse -Include '*.ods','*.xls','*.odt','*.doc' | Sort LastWriteTime | group Basename | ?{$_.Count -gt 1} | %{  
    $_.Group | select -First 1 | move-item -destination "$env:tmp\00_PS\00_Test_RESULT" -Verbose  
}
Hast Du noch Tip für:
Logging der jeweiligen Datei mit dem älteren Editier-Datum [ mit vollständigem Pfad ] nach
"$env:tmp\00_PS\00_Test_LOG.txt"  
?
139708
Lösung 139708 16.05.2019 aktualisiert um 14:50:24 Uhr
Goto Top
Naja das ist ja wohl simpel, wenn du dir mal den Code anschaust
Mit
$_.Group | select -First 1
Bekommst du ja das entsprechende Dateiobjekt, also brauchst du den Namen der Datei einfach nur ausgeben.
($_.Group | select -First 1).Fullname | Add-Content "$env:tmp\00_PS\00_Test_LOG.txt"  
Hätte man eigentlich auch selbst rausbekommen können ...
robx
robx 16.05.2019 um 20:38:07 Uhr
Goto Top
kompletter Newcomer mit PS: jeder fängt mal an ;)
Danke!