Имя пользователя:
Пароль:
 

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

Ветеран


Contributor


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

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


Напишите строки с Вашими папками Call :Moving "Откуда" "Маска" "Куда" столько раз, сколько нужно, и не надо куча батников
Код: Выделить весь код
@Echo Off

SetLocal EnableExtensions EnableDelayedExpansion
Set "Dir=Dir /A:-D /O:D /T:W"
rem Set "Dir=Dir /A:-D /O:D /T:C"

Call :Moving "Z:\Old" "*.*" "Z:\Old"
Call :Moving "Z:\Откуда" "*.*" "Z:\Куда"
Call :Moving "Z:\Tralala" "*.*" "Z:\Kuku"


GoTo :Eof

:Moving
rem %1-откуда, %2-маска, %3-куда

Pushd %1

Set "DOld="
FOR /F "usebackq tokens=1,3,*" %%i IN (`%Dir% "%~1\%~2" 2^>nul`) DO (
	Set "DNew=%%i"
	Set "DNew=!DNew:~2,1!!DNew:~5,1!"
	If  "!DNew!"==".." If /I Not "%%k"=="%0" (
		Set "DNew=%%i"
		If /I Not "!DOld!"=="%%i" (
			Set "NDir=%~3\!DNew:~6,4!\!DNew:~3,2!\!DNew:~0,2!\"
rem			Set "NDir=%~3\!DNew:~6,4!_!DNew:~3,2!_!DNew:~0,2!\"
			MD "!NDir!" 2>nul
			Set "DOld=%%i"
		)
		move "%%k" "!NDir!" 1>nul 
	)
)
popd

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

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

Отправлено: 16:23, 06-10-2016 | #9