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

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

Ветеран


Contributor


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

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


Цитата:
Спасибо... однако под корневой папкой я понимал папку в коророй лежит батник, а не корень диска.
jokerbleck, так как я телепатиям не обучен то я Вам предоставил возможноять явным образом указать путь, где надо создавать папки. Если Вы хотите создавать папки там, откуда запускается батник, то вот 2 варианта, как определить исходное данное-переменную Out вместо того, как это было сделано у меня
Код: Выделить весь код
Set Out=.
Код: Выделить весь код
Set Out=%~dp0
Set Out=%Out:~0,-1%
В остальном в коде ничего менять не надо
Если батник, огромное число файлов, папки, в которые расфасовываются файлы, находятся вместе, то вот решение (в нём батник не попытается сам себя отсортировать - он останется на месте)
Код: Выделить весь код
@Echo Off
rem Даты в системе должны быть формата dd.mm.yyyy, иначе решение надо дорабатывать под конкретный случай

SetLocal EnableExtensions
SetLocal EnableDelayedExpansion

Set Bat=%0

FOR %%k IN (*.*) DO (
    If Not "%%k"=="%Bat%" (  
	Set tFile=%%~tk
        Set tFile=!tFile:~6,4!_!tFile:~3,2!_!tFile:~0,2!
	Set xFile=%%~xk
	Set xFile=!xFile:~1,255!
        If Not Exist "!tFile!\!xFile!" Md "!tFile!\!xFile!"
        Move /Y "%%k" "!tFile!\!xFile!\"
    )
)

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


Последний раз редактировалось megaloman, 16-02-2012 в 15:31.

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

Отправлено: 13:06, 16-02-2012 | #7