@echo off
Setlocal EnableDelayedExpansion
SET ROOT_FOLDER=C:\TEST 1
SET TARGET_FOLDER=C:\TEST 2
FOR /D %%G IN ("%ROOT_FOLDER%"\*) do (
CD %%G
FOR /f %%A in ('dir ^| find "File(s)"') do (
set cnt=%%A
Echo %%G : !cnt!
IF !cnt! == 1 (
move /-y "*.*" "%TARGET_FOLDER%"
)
)
)
Este lote procurará dentro de C:\TEST 1
subpastas um arquivo de contagem. Assim que encontrar um arquivo solitário, ele será movido para C:\TEST 2
. ele também pedirá sobrescrever caso o nome do arquivo já exista.
Substitua C:\TEST 1
e C:\TEST 2
pelos seus próprios valores.
você pode adicionar pause
no final do lote para ler a contagem de arquivos ecoada por ele.