PS: Dateien anhand des Dateityps und des Änderungsdatums in Ordner verschieben
Hallo zusammen,
Mein Skript sieht bisher so aus:
$quelle = 'c:\Test'
$ziel_str = 'd:\Test'
'txt' = 'Nachrichten'
'csv' = 'Nachrichten'
'xml' = 'Nachrichten'
'log' = 'Logs'
}
$Dateien = gci $quelle\*.* | ?{!$_.PSIsContainer-and $_.LastWriteTime}
foreach ($Datei in $Dateien){
$ziel = "$ziel_str\$($mapTyp.($_.Extension.replace('.','')))\Wetterdaten\$($Datei.LastWriteTime.Year)"
if (!(Test-Path $ziel)){md $ziel -Force | out-null}
move-item $Datei.Fullname -Destination $ziel -Force
}
Was jetzt leider nicht funktioniert, ist das die Dateien in den Sub-Ordner Nachrichten bzw. Logs aufgrund des Dateityps verschoben werden.
D. h. die Dateien werden verschoben nach:
d:\Test\Wetterdaten\2015
d:\Test\Wetterdaten\2016
anstatt wie gewünscht:
d:\Test\Nachrichten\Wetterdaten\2015
d:\Test\Nachrichten\Wetterdaten\2016
d:\Test\Logs\Wetterdaten\2015
d:\Test\Logs\Wetterdaten\2016
Kann mir jemand bitte helfen?
Viele Grüße und Danke
Jenny
Mein Skript sieht bisher so aus:
$quelle = 'c:\Test'
$ziel_str = 'd:\Test'
- Dateityp -
'txt' = 'Nachrichten'
'csv' = 'Nachrichten'
'xml' = 'Nachrichten'
'log' = 'Logs'
}
$Dateien = gci $quelle\*.* | ?{!$_.PSIsContainer-and $_.LastWriteTime}
foreach ($Datei in $Dateien){
$ziel = "$ziel_str\$($mapTyp.($_.Extension.replace('.','')))\Wetterdaten\$($Datei.LastWriteTime.Year)"
if (!(Test-Path $ziel)){md $ziel -Force | out-null}
move-item $Datei.Fullname -Destination $ziel -Force
}
Was jetzt leider nicht funktioniert, ist das die Dateien in den Sub-Ordner Nachrichten bzw. Logs aufgrund des Dateityps verschoben werden.
D. h. die Dateien werden verschoben nach:
d:\Test\Wetterdaten\2015
d:\Test\Wetterdaten\2016
anstatt wie gewünscht:
d:\Test\Nachrichten\Wetterdaten\2015
d:\Test\Nachrichten\Wetterdaten\2016
d:\Test\Logs\Wetterdaten\2015
d:\Test\Logs\Wetterdaten\2016
Kann mir jemand bitte helfen?
Viele Grüße und Danke
Jenny
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 320325
Url: https://administrator.de/contentid/320325
Ausgedruckt am: 25.11.2024 um 06:11 Uhr
2 Kommentare
Neuester Kommentar
Zuviel Copy n' Paste ist nicht gut für die Figur
sollte
lauten.
Und was soll das hier???:
Erstens fehlt da ein Blank hinter "Container" und nur $_.LastWriteTime bewirkt nichts wenn du es nicht mit etwas vergleichst.
Gruß
$_.Extension.replace('.','')
$Datei.Extension.replace('.','')
Und was soll das hier???:
?{!$_.PSIsContainer-and $_.LastWriteTime
}Erstens fehlt da ein Blank hinter "Container" und nur $_.LastWriteTime bewirkt nichts wenn du es nicht mit etwas vergleichst.
Gruß
Moin,
bitte Quellcode immer mit Code-Tags versehen.
bitte Quellcode immer mit Code-Tags versehen.
clear-host
$source = ".\Desktop\test"
$destination = ".\Desktop\ziel"
$files = gci $source
foreach($f in $files){
$date = ($f.LastWriteTime).Year
$extension = $f.Extension
if($extension -eq ".log"){
$subfolder = "Log"
}else{
$subfolder = "Nachrichten"
}
$search = Test-Path "$destination\$subfolder\$date"
if($search -eq $false){
New-Item "$destination\$subfolder\$date" -ItemType directory
}
move-Item $source\$f -Destination "$destination\$subfolder\$date"
}