|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Создание папок с именем дат |
|
CMD/BAT - [решено] Создание папок с именем дат
|
Новый участник Сообщения: 8 |
Прошу помощи так как давно уже не практиковался и не могу сообразить
Нужен батник при запуске который создаёт папки. Имя папки должны быть даты в формате 12.11.2016. Вся загвоздка в том при запуске батника нужно что бы выходило окно с запросом начальной даты и конечной. Например вводишь 12.11.2016 это начало потом 15.11.2016 это конец и что бы создалось 4 папки за 12, 13, 14, 15 число. Ну как то так. Всем большое спасибо за помощь |
|
Отправлено: 06:30, 12-12-2016 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать gon_za,
решите ребус: сколько и каких папок будет создано из диапазона: 27.02.2017 - 3.03.2017? |
Отправлено: 17:45, 12-12-2016 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить 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 |
Ветеран Сообщения: 2728
|
Профиль | Отправить 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:
![]() |
|
------- Последний раз редактировалось megaloman, 12-12-2016 в 21:21. Отправлено: 21:15, 12-12-2016 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
![]() |
|
Отправлено: 22:09, 12-12-2016 | #14 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Iska, Вы меня пугаете! Я не смотрю последнее время по ящику новости: что, следующий год объявили високосным?
|
------- Отправлено: 22:24, 12-12-2016 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Ну, это ведь мы
|
Отправлено: 22:47, 12-12-2016 | #16 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|