Wie kann ich rekursiv umbenennen Ordner mit der Powershell?
Rekursiven umbenennen von Dateien mit PS ist trivial (variation am Beispiel von Mike Ormond ' s blog):
dir *_t*.gif -recurse
| foreach { move-item -literal $_ $_.Name.Replace("_thumb[1]", "")}
Ich versuche rekursiv umbenennen einer Ordner-Struktur.
Den use-case ist, ich möchte in der Lage sein zu benennen, eine ganze VS.NET Lösung (z.B. von Foo.Bar zu Bar.Foo). Um dies zu tun, gibt es mehrere Schritte:
- Ordner umbenennen (z.B. \Foo.Bar\Foo.Bar.Model => \Bar.Foo\ - Bar.Foo.Modell)
- Umbenennen von Dateien (z.B. Foo.Bar.Modell.csproj => Bar.Foo.Modell.csproj)
- Suchen und Ersetzen in Dateien zu korrigieren namespace-änderungen (z.B. 'namespace Foo.Bar' =>', namespace Bar.Foo')
Ich bin momentan auf der Arbeit der erste Schritt in diesem Prozess.
Fand ich diese posting, das spricht über die Herausforderungen und Ansprüche eine Lösung, aber nicht darüber reden, was die Lösung ist.
Ich laufen in der Rekursion Wand. Wenn ich lassen PS befassen sich mit der Rekursion mit einem flag, der übergeordnete Ordner wird umbenannt, bevor die Kinder, und das script wirft einen Fehler. Wenn ich versuche zu implementieren ist die Rekursion mich, meinen Kopf zu bekommen, ist alles schmerzende und Dinge, die schief gehen - für das Leben von mir ich kann nicht Dinge, die Ihr benennt, das im Heck der Rekursion Baum.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist die Lösung rbellamy endete mit:
Wie Sie zu dieser Aufgabe eine rekursive Liste der vollständigen Namen, Sortieren Sie in absteigender Reihenfolge nach der Länge des vollen namens, und führen Sie dann, dass wieder umbenennen routine.
z.B.
Vielleicht etwas in dies ist nützlich, hier ist ein snippet, dass eine Rekursion und fügt "pre", um eine Verzeichnis-Struktur