@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
в конце пакета, чтобы прочитать количество файлов, отраженных ею.