Esta é a minha estrutura de pastas atual em uma máquina com Windows 7:
---myfoolder
|
+---nope
| \---nope
| nope.txt
|
+---wtf
| \---wtf
| wtf.txt
|
+---yep
| \---yep
| yep.txt
|
\---zomg
\---zomg
zomg.txt
Nesta estrutura, há uma pasta duplicada em cada camada, como nope\nope
.
Gostaria de mover cada arquivo em cada pasta até um nível para eliminar essa duplicata (observe que, para simplificar, listei 1 arquivo em cada diretório, mas pode haver vários arquivos com diferentes extensões).
Isso é o que eu tentei com o powershell desta resposta :
gci -R | ?{!$_.PSIsContainer} | %{mv $_.fullname $_.directory.parent}
Infelizmente, estou recebendo este erro:
mv : Cannot create a file when that file already exists.
At line:1 char:35
+ gci -R | ?{!$_.PSIsContainer} | %{mv $_.fullname $_.directory.parent}
Acho que algo suspeito está acontecendo porque há um nome duplicado entre a pasta pai e filha, tentei também fornecer um -Force
na instrução mv
, mas ele só conseguiu realmente apagar os arquivos deixando as pastas como eles são (por sorte eu configurei um ambiente de teste antes de fazer isso!).
O que estou perdendo? Infelizmente eu sou realmente um novato em scripts PS, obrigado.