![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Создание папки с датой вчерашнего дня |
|
|
CMD/BAT - [решено] Создание папки с датой вчерашнего дня
|
Новый участник Сообщения: 41 |
Всем привет. Столкнулся с проблемой при формировании даты, а именно числами 8 и 9 в батнике. Насколько понимаю это связано с восьмеричной с/с
Прикрепил батник который создает папки структуры гггг/мм/дд Но вот в дни где есть цифры 8 или 9 он нехочет работать. Помогите дописать код чтобы избавиться от этой проблемы. Спасибо |
|
Отправлено: 12:59, 08-01-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать На WSH:
Скрытый текст
Option Explicit Dim dtYesterday Dim strYear, strMonth, strDay dtYesterday = DateAdd("d", -1, Now()) strYear = CStr(Year( dtYesterday)) strMonth = Right("00" & CStr(Month(dtYesterday)), 2) strDay = Right("00" & CStr(Day( dtYesterday)), 2) CreateFolderEx Join(Array("d:", strYear, strMonth, strDay), "\") WScript.Quit 0 '============================================================================= '============================================================================= Sub CreateFolderEx(strPath) With WScript.CreateObject("Scripting.FileSystemObject") If Not .FolderExists(strPath) Then CreateFolderEx .GetParentFolderName(strPath) .CreateFolder strPath End If End With End Sub '============================================================================= |
Отправлено: 13:37, 08-01-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Sergey.l,
Если не изобретать велосипед, то вот CMD
@Echo Off cls SetLocal EnableDelayedExpansion Call :FromNow -1 %Date% "yyyy" "mm" "dd" Echo %Date% %DeltaDay% %yyyy% %mm% %dd% Echo MD Disk:\Folder\%yyyy%\%mm%\%dd% pause GoTo :Eof :FromNow rem Пересчет даты на заданное кол-во дней rem Формат даты dd.mm.yyyy +- дни получим новые yyyymmdd rem Заимствовано http://forum.oszone.net/thread-186889.html rem вызов Call :FromNow %DeltaDay% %Date% "yyyy" "mm" "dd" rem результат в указанных перемменных %yyyy% %mm% %dd% SetLocal Set DT=%2 Set yyyy=%DT:~-4%& set /a mm=100%DT:~3,2%%%100& set /a dd=100%DT:~,2%%%100 Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4 Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001 Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11 Set /A J=J+2-12*L,I=100*(N-49)+I+L Set /A yyyy=I,mm=100+J,dd=100+K EndLocal &(Set %~3=%yyyy%&Set %~4=%mm:~-2%&Set %~5=%dd:~-2%) GoTo :Eof |
------- Последний раз редактировалось megaloman, 08-01-2018 в 14:57. Отправлено: 14:41, 08-01-2018 | #3 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Спасибо, большое! Нашел батник. (См. вложение)
Подскажите, как сделать условие так чтобы при запуске батника до 00:00 формировалась текущая дата, а после вчерашнее число. Работаю сутки/двое. Днем создаю рабочие папки с тек. датой, а в конце дежурства, т.е. на след день батником забираю с созданных вчера папок файлы. Буду премного обязан за помощь! |
Отправлено: 15:07, 08-01-2018 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать megaloman, как обычно, мы ничего не знаем — зачем сие нужно
![]() Цитата Sergey.l:
|
||
Отправлено: 15:07, 08-01-2018 | #5 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Нет. С датой изменения файла не получиться. Приходит очень много инфы от организаций. Нужно в течении суток их разбирать, и помимо этого, еще есть задачи.
|
Отправлено: 15:12, 08-01-2018 | #6 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Ничего смешного. Есть папка с текущей датой, 08.01.2018. Надо батником перемещать туда файлы в течении суток, после полуночи уже 9 число и батник должен следуя условию перемещать в папку не в 09.01.2018, а в 08.01.2018
Цитата Iska:
Цитата megaloman:
|
|||||
Последний раз редактировалось Sergey.l, 08-01-2018 в 15:26. Отправлено: 15:21, 08-01-2018 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Sergey.l, Вы так и не поняли, в чём проблема.
megaloman, желаю успеха в развитии навыка телепатии ![]() |
Отправлено: 15:29, 08-01-2018 | #8 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Основная задача по маске например %d%%m%%y% из папки забирать или в нее копировать файлы. Неудобство в том что днем нужна тек дата а ночью вчерашняя. Мне не сложно было это делать через тотал коммандер, но вы бы видели сколько каталогов и файлов с которыми приходиться работать. Папка с числом наход в 15-20 каталогах и с разных мест в эти папки надо перемещать файллы, а в конце смены забрать обработанные.
Я не совсем разбираюсь в этом. Хотел бы на вас посмотреть, как вы разъяснялись в незнакомой области. Или вы все знаете?))) Цитата Iska:
|
|
Отправлено: 15:37, 08-01-2018 | #9 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Цитата Sergey.l:
![]() Определитесь, что такое ночь, и что такое день - в математике нет таких понятий. Допустим с 00:00:00,00 до 07:59:59,99 это ночь. с 08:00:00,00 до 23:59:59,99 это день. |
|
------- Отправлено: 15:56, 08-01-2018 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - [решено] Создание папки с датой в названии и копирование туда файлов | Chiz3000 | Скриптовые языки администрирования Windows | 2 | 30-07-2013 10:09 | |
Компанию Samsung со вчерашнего дня возглавляют три человека | OSZone News | Новости информационных технологий | 0 | 16-03-2013 10:30 | |
CMD/BAT - Скорректируйте, пожалуйста, создание папки с датой | n e w b i e | Скриптовые языки администрирования Windows | 1 | 03-12-2011 03:55 | |
Интерфейс - как поменять местами отображение дня недели с датой ? | geepnozeex | Microsoft Windows 2000/XP | 1 | 13-04-2011 01:26 | |
Создаем конфигурацию вчерашнего дня Help! | yuriivan | Выбор отдельных компонентов компьютера и конфигурации в целом | 23 | 13-03-2007 15:17 |
|