Se você deseja uma solução de arquivos em lote 'pura', copie o seguinte código em um arquivo e execute-o. Ele é projetado para que o arquivo bat resida em um diretório de nível superior, mas processará os arquivos no diretório atual.
@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
for /f "delims=\" %%i in ('dir c:\test\*.* /l /b') do (
echo "%%i"
set str=%%~xi
IF NOT EXIST ".\!str:.=!" mkdir ".\!str:.=!"
copy /y "%%i" ".\!str:.=!\%%i"
del /f "%%i"
)
Por exemplo, para usar,
- coloque o arquivo bat em c: \
- abre um prompt de comando
- cd em c: \ files
- execute o arquivo bat.
Deixe-me saber se você precisa de mais alguma informação.