My original post neglected to include the file's extension in the move command.
%~ni
only returns the basename, you need to use%~nxi
to get both the filename and extension! I hope you haven't mangled your filenames on my account!(
De um prompt de comando:
cd /d C:\Path\To\A
for /r %i in (*) do @move "%i" "%~nxi"
Se você precisar limpar as pastas vazias depois:
for /d %i in (*) do @rd /s /q "%i"
Agora, se você tiver conflitos de nome de arquivo, estará por sua conta. Você pode adicionar o parâmetro /y
ao comando move
(antes do "%i"
) para forçar a sobrescrita. Se você quiser algo diferente, precisará de outro programa que possa renomear tudo automaticamente para você.
Além disso, se você quiser usar isso em um arquivo de lote, altere todos os %
para %%
.