mp-home
Goto Top

Doppelte Ordner durch umbenennen und Robocopy

Hallo Forum,

ich habe einen Projektordner mit ca. 3000 Unterordnern und nahezu 6TB Inhalt.
Diesen kopiere ich mit Robocopy auf eine andere Festplatte. Immer nur die veränderten Daten.

Jetzt zu meinem Problem:
Die Namen der Unterordner sind Adressen. Ändert jemand im Ordnernamen zb. Strasse in Straße habe ich diesen Ordner 2x auf der zweiten HDD.
Dh. die doppelten Ordnernamen sind nahezu identisch. Was immer gleich bleibt im Ordnernamen ist eine fortlaufende Projektnummer (P_xxx). Diese habe ich dann zweimal, auch wenn sich sonst alles im Ordnernamen geändert hat.
Gibt es eine Möglichkeit wie ich mir die doppelten Projekte anzeigen lassen kann?

Vielen Dank für eure Unterstützung.

Gruß Markus

Content-ID: 514106

Url: https://administrator.de/forum/doppelte-ordner-durch-umbenennen-und-robocopy-514106.html

Ausgedruckt am: 23.12.2024 um 06:12 Uhr

vossi31
vossi31 11.11.2019 aktualisiert um 16:55:31 Uhr
Goto Top
Moin,

soll der Zielordner genauso aussehen wie der Quellordner nutze die Option /MIR.
Aber Vorsicht, der löscht dann auch, was dein aktueller uns unbekannter Befehl nicht macht.

Henning
emeriks
emeriks 11.11.2019 um 17:00:33 Uhr
Goto Top
Ändert jemand im Ordnernamen
Dort ansetzen und dies verhindern.
erikro
erikro 11.11.2019 aktualisiert um 17:18:18 Uhr
Goto Top
Moin,

mit der Powershell:

get-childitem | %{$_.name.remove(5)} | group-object $_

Ausgabe:
PS E:\test> Get-ChildItem


    Directory: E:\test


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       11.11.2019     17:02                P_123_1
d-----       11.11.2019     17:02                P_123_2
d-----       11.11.2019     17:02                P_124_1
d-----       11.11.2019     17:02                P_125_1
d-----       11.11.2019     17:02                P_125_2


PS E:\test> get-childitem | %{$_.name.remove(5)} | group-object $_

Count Name                      Group
----- ----                      -----
    2 P_123                     {P_123, P_123}
    1 P_124                     {P_124}
    2 P_125                     {P_125, P_125}

Wobei dann den P_xxx immer fünf Zeichen lang sein muss. Sonst mit einer regex.

hth

Erik
mp-home
mp-home 11.11.2019 um 18:05:36 Uhr
Goto Top
Das lässt sich leider nicht verhindern, da z.B. Hausnummern zum Teil erst später zugewiesen werden.
mp-home
mp-home 11.11.2019 um 18:18:43 Uhr
Goto Top
Hallo Erik,
vielen Dank für deine Hilfe.
Leider steht die P_xxx Nummer nicht am Anfang des Ordnernamens sondern am Ende. Diese ist 4-, 5- und 6-stellig.
Hier mal ein typisches Beispiel:
I:\Backup\Projekte\Bonndorf_Waldallee__P_677
I:\Backup\Projekte\Bonndorf_Waldallee_33__P_677
Es würde mir schon helfen, wenn es mir die doppelten P_xxx-Nummern anzeigen würde.
Gruß M
141815
Lösung 141815 11.11.2019 aktualisiert um 18:32:06 Uhr
Goto Top
Zitat von @mp-home:

Hallo Erik,
vielen Dank für deine Hilfe.
Leider steht die P_xxx Nummer nicht am Anfang des Ordnernamens sondern am Ende. Diese ist 4-, 5- und 6-stellig.
Hier mal ein typisches Beispiel:
I:\Backup\Projekte\Bonndorf_Waldallee__P_677
I:\Backup\Projekte\Bonndorf_Waldallee_33__P_677
Es würde mir schon helfen, wenn es mir die doppelten P_xxx-Nummern anzeigen würde.
Gruß M
gci 'I:\Backup' -Directory -Recurse | group {[regex]::match($_.Name,'(?i)P_\d+$').Value} | ?{$_.Count -gt 1} | %{$_.Group.Fullname; "================"}  
Fertsch.
mp-home
mp-home 11.11.2019 um 18:39:02 Uhr
Goto Top
> gci 'I:\Backup' -Directory -Recurse | group {[regex]::match($_.Name,'(?i)P_\d+$').Value} | ?{$_.Count -gt 1} | %{$_.Group.Fullname; "================"}  
> 
Fertsch.

leider bekomme ich eine Fehlermeldung:
Get-ChildItem : Es wurde kein Parameter gefunden, der dem Parameternamen "Directory" entspricht.  
Meinen Pfad habe ich angepasst:
gci 'E:\Backup\Projekte' -Directory | group {[regex]::match($_.Name,'(?i)P_\d+$').Value} | ?{$_.Count -gt 1} | %{$_.Group.Fullname}  
Wo liegt mein Fehler?
mp-home
mp-home 11.11.2019 um 18:51:59 Uhr
Goto Top
hier die komplette Fehlermeldung:
fehler
141815
Lösung 141815 11.11.2019 aktualisiert um 21:13:43 Uhr
Goto Top
Deine Powershell ist zu alt, die kennt den Parameter Directory noch nicht.
Für ne alte Powershell geht das so
gci 'I:\Backup' -Recurse | ?{$_.PsIsContainer} | group {[regex]::match($_.Name,'(?i)P_\d+$').Value} | ?{$_.Count -gt 1} | select -ExpandProperty Group  
erikro
Lösung erikro 12.11.2019 um 08:20:27 Uhr
Goto Top
Moin,

Zitat von @141815:

Deine Powershell ist zu alt, die kennt den Parameter Directory noch nicht.
Für ne alte Powershell geht das so

Oder besser das Update einspielen. face-wink https://docs.microsoft.com/de-de/skypeforbusiness/set-up-your-computer-f ...

Liebe Grüße

Erik
mp-home
mp-home 12.11.2019 um 15:00:35 Uhr
Goto Top
So, nachdem das Script nun nach ca. 6 Std. durchgelaufen ist, habe ich genau das Ergebnis, welches ich benötige.
Nochmal ein herzliches Dankeschön an calendar und erikro für die schnelle und kompetente Hilfe.
Gruß Markus
erikro
erikro 12.11.2019 um 15:23:18 Uhr
Goto Top
Gerne