Unterordner eine Ebene hoch kopieren
Hallo,
ich bin wieder auf der Suche nach einer cmd Lösung für folgende Situation:
Ich habe logfiles die gespeichert werden, das Logfile für den 01.Januar wir im Ordner 0101 abgelegt, das logfile für den 15. Januar im Ordner 1501 usw.
In den Datumsordnern sind teilweise auch noch Unterordner.
Ich will also dass der Inhalt von
c:\log\0101
c:\log\0201
usw einfach in
c:\log kopiert wird. So kompliziert kann das ja eigentlich nicht so aber mit xcopy hab ich das bisher nicht hinbekommen und mit move ebenfalls nicht. Ich befürchte ich übersehe einen wichtigen Punkt.
Ich hoffe ihr könnt mir helfen.
Vielen Dank vorab.
ich bin wieder auf der Suche nach einer cmd Lösung für folgende Situation:
Ich habe logfiles die gespeichert werden, das Logfile für den 01.Januar wir im Ordner 0101 abgelegt, das logfile für den 15. Januar im Ordner 1501 usw.
In den Datumsordnern sind teilweise auch noch Unterordner.
Ich will also dass der Inhalt von
c:\log\0101
c:\log\0201
usw einfach in
c:\log kopiert wird. So kompliziert kann das ja eigentlich nicht so aber mit xcopy hab ich das bisher nicht hinbekommen und mit move ebenfalls nicht. Ich befürchte ich übersehe einen wichtigen Punkt.
Ich hoffe ihr könnt mir helfen.
Vielen Dank vorab.
Please also mark the comments that contributed to the solution of the article
Content-ID: 7621899365
Url: https://administrator.de/contentid/7621899365
Printed on: December 7, 2024 at 18:12 o'clock
7 Comments
Latest comment
In den Datumsordnern sind teilweise auch noch Unterordner.
Und die Unterordner der Datumsordner willst du auch mit hoch kopieren?Wenn ja dann folgender PowerShell Einzeiler
Get-ChildItem "c:\log" -Directory | %{copy-item "$($_.Fullname)\*" -Destination $_.Parent.Fullname -Recurse}
Get-ChildItem "c:\log\*\*" -File | copy-item -Destination {$_.Directory.Parent.Fullname}
@echo off
set "root=C:\logs"
for /d %%a in ("%root%\*") do xcopy "%%a\*" "%root%" /e
Zeppel
Deine PowerShell ist vieeeeeeeel zu alt, aktualisiere sie . Denn dort kennt sie die Parameter -File und -Directory noch nicht.
Für PowerShell 2.0 kann man es aber so umschreiben wenn man muss
Das erste
Das zweite
Trotzdem würde ich dringend dazu raten die PS zu aktualisieren, die 2er ist schon Jahrzehnte alt und hat diverse Bugs, von der Geschwindigkeit mal ganz abgesehen!
Für PowerShell 2.0 kann man es aber so umschreiben wenn man muss
Das erste
Get-ChildItem "c:\log" | ?{$_.PSIsContainer} | %{copy-item "$($_.Fullname)\*" -Destination $_.Parent.Fullname -Recurse}
Get-ChildItem "c:\log\*\*" | ?{!$_.PSIsContainer} | %{copy-item $_.Fullname -Destination $_.Directory.Parent.Fullname}
Trotzdem würde ich dringend dazu raten die PS zu aktualisieren, die 2er ist schon Jahrzehnte alt und hat diverse Bugs, von der Geschwindigkeit mal ganz abgesehen!