@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%"
)
)
)
Ця партія буде шукати всередині C:\TEST 1
підпапок лічильних файлів. як тільки він знайде самотній файл, він перемістить його C:\TEST 2
. він також попросить перезаписати, якщо ім'я файлу вже існує.
Замініть C:\TEST 1
і C:\TEST 2
з власними цінностями.
ви можете додати pause
в кінці партії, щоб прочитати підрахунок файлів, відлучених нею.