Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off
cls
>nul Chcp  1251
	Set "FileIn=Z:\Box_In\*.pdf"
	Set "BoxOut=Z:\Box_Out"
	
	FOR /F "usebackq delims=" %%f In (`2^>nul Dir "%FileIn%" /S /B /A:-D`) DO (
		2>nul Md "%BoxOut%\%%~nf"
		>nul Move /Y "%%f" "%BoxOut%\%%~nf\"
	)
pause
Exit /B
Пути пропишИте свои.

Цитата SurkovAA:
желательно сделать перемещение, а не копирование. »
Вот еще вариант: если в папке, например, "Иван Иванович" только один файл "Иван Иванович.pdf", то не вижу смысла после перемещения файла оставлять пустую папку "Иван Иванович". Удаляем ее:
Код: Выделить весь код
@Echo Off
cls
>nul Chcp  1251
	Set "FileIn=Z:\Box_In\*.pdf"
	Set "BoxOut=Z:\Box_Out"
	
	FOR /F "usebackq delims=" %%f In (`2^>nul Dir "%FileIn%" /S /B /A:-D ^|Sort /R`) DO (
		2>nul Md "%BoxOut%\%%~nf"
		>nul Move /Y "%%f" "%BoxOut%\%%~nf\" &&2>nul Rd "%%~dpf"
	)
pause
Exit /B
Если в папке что-то еще, папка удалена не будет.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 09-02-2022 в 13:52.


Отправлено: 12:54, 09-02-2022 | #4