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

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

Ветеран


Contributor


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

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


Patroklos,
Если перезаписываем
Код: Выделить весь код
@Echo off
	Set "BoxIn=Z:\Источник"
	Set "BoxOut=Z:\Результат"
	Set "Mask=*.txt"

	FOR /R "%BoxIn%" %%f IN ("%Mask%") DO Set "NDir=%%~dpf" &Call :FMove "%%f" "%%NDir:~0,-1%%" "%BoxOut%"
GoTo :Eof

:FMove
	Set "Out=%~3\%~nx2"
	If Not Exist "%Out%" Md "%Out%"
	Move /Y %1 "%Out%\" >nul
GoTo :Eof
Если переименовываем
Код: Выделить весь код
@Echo off
	Set "BoxIn=Z:\Источник"
	Set "BoxOut=Z:\Результат"
	Set "Mask=*.txt"

	FOR /R "%BoxIn%" %%f IN ("%Mask%") DO Set "NDir=%%~dpf" &Call :FMove "%%f" "%%NDir:~0,-1%%" "%BoxOut%"
GoTo :Eof

:FMove
	Set "Out=%~3\%~nx2"
	If Not Exist "%Out%" Md "%Out%"
	Set /A i=1000
	Set "NewName=%Out%\%~nx1"
	:Begin
		If Not Exist "%NewName%" Move %1 "%NewName%" >nul &GoTo :Eof
		Set /A i+=1
		Set "NewName=%Out%\%~n1_%i:~1%%~x1"
	GoTo :Begin
GoTo :Eof

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


Последний раз редактировалось megaloman, 16-10-2018 в 22:38.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:09, 16-10-2018 | #4