Ordnerinhalt in übergeordneten Ordner verschieben

Ordnerinhalt in übergeordneten Ordner verschieben

Dies ist meine aktuelle Ordnerstruktur auf einem Windows 7-Computer:

---myfoolder
   |    
   +---nope              
   |   \---nope          
   |           nope.txt  
   |                     
   +---wtf               
   |   \---wtf           
   |           wtf.txt   
   |                     
   +---yep               
   |   \---yep           
   |           yep.txt   
   |                     
   \---zomg              
       \---zomg          
               zomg.txt  

In dieser Struktur gibt es auf jeder Ebene einen doppelten Ordner, wie nope\nope.

Ich möchte jede Datei in jedem Ordner eine Ebene nach oben verschieben, um diese Duplikate zu vermeiden (beachten Sie, dass ich der Einfachheit halber 1 Datei in jedem Verzeichnis aufgelistet habe, es jedoch mehrere Dateien mit unterschiedlichen Erweiterungen geben könnte).

Das habe ich mit Powershell versuchtaus dieser Antwort:

gci -R | ?{!$_.PSIsContainer} | %{mv $_.fullname $_.directory.parent}

Leider erhalte ich diese Fehlermeldung:

mv : Cannot create a file when that file already exists.
At line:1 char:35
+ gci -R | ?{!$_.PSIsContainer} | %{mv $_.fullname $_.directory.parent}

Ich glaube, da läuft etwas faul, denn der übergeordnete und der untergeordnete Ordner haben einen doppelten Namen. Ich habe auch versucht, ein -Forcein der mvAnweisung anzugeben, aber dadurch wurden nur die Dateien gelöscht und die Ordner so belassen, wie sie waren (zum Glück hatte ich vorher eine Testumgebung eingerichtet!).

Was übersehe ich? Leider bin ich ein echter Neuling im PS-Scripting, danke.

Antwort1

Move-Itemnimmt Pfade als Zeichenfolgen an, und wenn .directory.parentin eine Zeichenfolge umgewandelt wird, ist es entweder eine leere Zeichenfolge oder nur ein Verzeichnisname. Es scheint nicht der vollständige Pfad zum übergeordneten Ordner zu sein.

Versuchen:

$_.directory.parent.FullName

oder

|%{ mv $_.FullName (Split-Path -Parent $_.Directory) }

verwandte Informationen