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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Создание папок с именем дат

Ответить
Настройки темы
CMD/BAT - [решено] Создание папок с именем дат

Новый участник


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


Конфигурация

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


Прошу помощи так как давно уже не практиковался и не могу сообразить

Нужен батник при запуске который создаёт папки. Имя папки должны быть даты в формате 12.11.2016. Вся загвоздка в том при запуске батника нужно что бы выходило окно с запросом начальной даты и конечной. Например вводишь 12.11.2016 это начало потом 15.11.2016 это конец и что бы создалось 4 папки за 12, 13, 14, 15 число. Ну как то так.



Всем большое спасибо за помощь

Отправлено: 06:30, 12-12-2016

 

Ветеран


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

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


gon_za,
решите ребус:
сколько и каких папок будет создано из диапазона: 27.02.2017 - 3.03.2017?

Отправлено: 17:45, 12-12-2016 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


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

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


Если начальная и конечная дата в пределах одного месяца, то всё нормально, в противном в любом месяце принимается число дней 31. Делать контроль на правильное число дней в месяце нет моральных сил.
Код: Выделить весь код
@Echo Off
cls
SetLocal EnableExtensions EnableDelayedExpansion

Set /P Date1= Input first Date dd.mm.yyyy=
Call :ErrDate "%Date1%" "YDM"
If Not %Log%==1 GoTo :End
Set /A YDM1=%YDM%

Set /P Date2= Input  last Date dd.mm.yyyy=
Call :ErrDate "%Date2%" "YDM"
If Not %Log%==1 GoTo :End
Set /A YDM2=%YDM%

FOR /L %%i IN (%YDM1%,1,%YDM2%) DO (
	Set /A YDM=%%i
	Set /A YY=1!YDM:~0,4!
	Set /A MM=1!YDM:~4,2!
	Set /A DD=1!YDM:~6,2!
	If 101 LEQ !DD! If !DD! LEQ 131 If 101 LEQ !MM! If !MM! LEQ 112 Md !YDM:~0,4!.!YDM:~4,2!.!YDM:~6,2! 2>nul
)
GoTo :Eof

:End

Echo %YDM%  Input date not correct 
pause

GoTo :Eof

:ErrDate
	Set "%~2=%~1"
	Set "Log=0"
	Set "Dot=%~1"
	If "%Dot:~2,1%%Dot:~5,1%"==".." Set "Log=1"
	If !Log!==1 (Set "Log=0" &Set "DD=1%Dot:~0,2%" &Set /A DD=!DD!*2/2 2>nul &&If 1%Dot:~0,2% EQU !DD! Set "Log=1")
	If !Log!==1 (Set "Log=0" &Set "MM=1%Dot:~3,2%" &Set /A MM=!MM!*2/2 2>nul &&If 1%Dot:~3,2% EQU !MM! Set "Log=1")
	If !Log!==1 (Set "Log=0" &Set "YY=1%Dot:~6,4%" &Set /A YY=!YY!*2/2 2>nul &&If 1%Dot:~6,4% EQU !YY! Set "Log=1")
	If !Log!==1 (Set "Log=0" &If 101 LEQ !DD! If !DD! LEQ 131 Set "Log=1")
	If !Log!==1 (Set "Log=0" &If 101 LEQ !MM! If !MM! LEQ 112 Set "Log=1")
	If !Log!==1 (Set "Log=0" &If 11980 LEQ !YY! If !YY! LEQ 12100 Set "Log=1")
	If !Log!==1 Set "%~2=%YY:~1,4%%MM:~1,2%%DD:~1,2%"
GoTo :Eof

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

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

Отправлено: 18:59, 12-12-2016 | #12


Ветеран


Contributor


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

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


VBS-скрипт. Папки создаются с именами корректных дат
Код: Выделить весь код
Set WShell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")

TDir = WShell.CurrentDirectory

Date1 = InDate(InputBox("Вводите дату в формате дд.мм.гггг", "Начальная дата"))
Date2 = InDate(InputBox("Вводите дату в формате дд.мм.гггг", "Конечная дата"))

For D = Date1 To Date2
'    MsgBox CStr(Date1) + "  " + CStr(Date2) + vbCrLf + CStr(D)
    On Error Resume Next
    FSO.CreateFolder (TDir + "\" + CStr(Year(D)) + "." + Right(CStr(Month(D) + 100), 2) + "." + Right(CStr(Day(D) + 100), 2))
'    If Err.Number<>0 Then
'	MsgBox err.description
'    End If
Next
WScript.Quit

Function InDate(Dtin)
    If IsDate(Dtin) Then
        InDate = CDate(Dtin)
    Else
        MsgBox Dtin + vbCrLf + "Дата введена неверно"
        WScript.Quit
    End If
End Function
alpap,
Цитата alpap:
решите ребус:
сколько и каких папок будет создано из диапазона: 27.02.2017 - 3.03.2017?
- а в чём подвох, ночь не буду спать пока не узнаю , мой скрипт выдал 5 папок

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


Последний раз редактировалось megaloman, 12-12-2016 в 21:21.

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

Отправлено: 21:15, 12-12-2016 | #13


Ветеран


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

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


Цитата megaloman:
- а в чём подвох, ночь не буду спать пока не узнаю , мой скрипт выдал 5 папок »
Високосный, або нет, год же .

Отправлено: 22:09, 12-12-2016 | #14


Ветеран


Contributor


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

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


Iska, Вы меня пугаете! Я не смотрю последнее время по ящику новости: что, следующий год объявили високосным?

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


Отправлено: 22:24, 12-12-2016 | #15


Ветеран


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

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


Ну, это ведь мы знаем можем посмотреть по телевизору, а пакетному файлу это надо вычислять.

Отправлено: 22:47, 12-12-2016 | #16



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Создание папок с именем дат

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Создание папок исходя из дат создания файлов и перемещение их в эти папки mezzin Скриптовые языки администрирования Windows 13 25-01-2018 18:38
Доступ - [решено] создание папок на сетевом диске с именем >8 символов hedin63@vk Microsoft Windows 2000/XP 2 18-08-2014 15:35
VBS/WSH/JS - создание скрипта для создание текстовика с именем учетки velsati Скриптовые языки администрирования Windows 0 01-04-2013 16:55
VBS/WSH/JS - [решено] Создание папок с именем файла и перемещение SySTek Скриптовые языки администрирования Windows 2 02-03-2011 15:38
VBS/WSH/JS - Создание папок исходя из имени хоста.Создание ярлыков. ufunf Скриптовые языки администрирования Windows 1 18-02-2010 13:59




 
Переход