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-Key: 514106

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

Printed on: April 19, 2024 at 13:04 o'clock

Member: vossi31
vossi31 Nov 11, 2019 updated at 15:55:31 (UTC)
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
Member: emeriks
emeriks Nov 11, 2019 at 16:00:33 (UTC)
Goto Top
Ändert jemand im Ordnernamen
Dort ansetzen und dies verhindern.
Member: erikro
erikro Nov 11, 2019 updated at 16:18:18 (UTC)
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
Member: mp-home
mp-home Nov 11, 2019 at 17:05:36 (UTC)
Goto Top
Das lässt sich leider nicht verhindern, da z.B. Hausnummern zum Teil erst später zugewiesen werden.
Member: mp-home
mp-home Nov 11, 2019 at 17:18:43 (UTC)
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
Mitglied: 141815
Solution 141815 Nov 11, 2019 updated at 17:32:06 (UTC)
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.
Member: mp-home
mp-home Nov 11, 2019 at 17:39:02 (UTC)
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?
Member: mp-home
mp-home Nov 11, 2019 at 17:51:59 (UTC)
Goto Top
hier die komplette Fehlermeldung:
fehler
Mitglied: 141815
Solution 141815 Nov 11, 2019 updated at 20:13:43 (UTC)
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  
Member: erikro
Solution erikro Nov 12, 2019 at 07:20:27 (UTC)
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
Member: mp-home
mp-home Nov 12, 2019 at 14:00:35 (UTC)
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
Member: erikro
erikro Nov 12, 2019 at 14:23:18 (UTC)
Goto Top
Gerne