![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 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 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Еще раз постараюсь объяснить. Согласен, что запутал вас.
С 08:00 до 00:00 - день С 00:01 до 07:59 - ночь В 8:00 я создаю папку в разных местах с текущей, сегодняшней датой через батник. Весь день перемещаю в эти папки и забираю из них файлы по маске %d%%m%%y%. После полуночи дата меняется. Соответственно батник уже будет искать файлы и перемещать в папки не с датой например 08012018, а 09012018. Вот для этого я и прошу помочь в решении этого вопроса. Понятно, сто можно два батника написать с текущей датой, и тек дата - 1. Но хотелось бы один Цитата megaloman:
|
||
Отправлено: 16:27, 08-01-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Sergey.l,
Вот определение даты для имени папки в зависимости от того, когда ночь.
@Echo Off cls Set "NightB=0001" Set "NightE=0759" SetLocal EnableDelayedExpansion Call :StrDate "yyyy" "mm" "dd" "hhmm" Set /A DeltaDay=0 If 1%NightB% LEQ 1%hhmm% If 1%hhmm% LEQ 1%NightE% Set /A DeltaDay=-1 Call :FromNow %DeltaDay% %dd%.%mm%.%yyyy% "yyyy" "mm" "dd" Echo %Date% %Time% %yyyy% %mm% %dd% %hhmm% pause GoTo :Eof :StrDate FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%%d" Set "%~1=%@Tdate:~0,4%" Set "%~2=%@Tdate:~4,2%" Set "%~3=%@Tdate:~6,2%" Set "%~4=%@Tdate:~8,4%" 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 Цитата Sergey.l:
|
|
------- Последний раз редактировалось megaloman, 08-01-2018 в 18:53. Отправлено: 18:48, 08-01-2018 | #12 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось DJ Mogarych, 08-01-2018 в 21:02. Отправлено: 20:55, 08-01-2018 | #13 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Спасибо!
|
Отправлено: 17:40, 09-01-2018 | #14 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Зачем городить огород с этими батниками,если можно одной строкой из павершел все сделать!
|
Отправлено: 11:48, 10-01-2018 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Wirehead, например, для того, чтобы не разворачивать сотню остальных строк из пакетного файла в тысячу строк на PowerShell.
|
Отправлено: 12:35, 10-01-2018 | #16 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать Да уж лучше потратить несколько недель и портировать всё на Powershell, чем постоянно на грабли наступать в батниках, пытаясь там реализовать через разные извращения уже встроенные в пауэршелл готовые командлеты и модули. Будет наоборот - сто строк батника будут десятью строками в пауэршелле. Нужно сказать, что большинство, если не все, команды старой командной строки являются алиасами в Powershell, так что, возможно, ничего особо и переделывать-то не придётся.
К тому же, появится новое полезное умение. |
------- Отправлено: 16:16, 10-01-2018 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать DJ Mogarych, в данном случае не могу с Вами согласиться, коллега: какой смысл тратить несколько дней или недель на то, что уже и так работает?!
|
Отправлено: 23:38, 10-01-2018 | #18 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать Чтобы держаться прогресса, потому что в какой-то момент окажется, что то, что работало, работать перестало, а миграция на новые решения невозможна, потому что пропущено слишком много итераций, и прямой апгрейд не поддерживается.
Положим, к этому случаю это имеет непрямое отношение, но несколько раз видел совершенно исключительные случаи, типа сеть на компах под Windows NT в 2013 году, где задача стояла установить антивирус Касперского. Ну и, в конце концов, интересно же изучать что-то новое и более эффективное ![]() |
------- Отправлено: 09:16, 11-01-2018 | #19 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Iska, DJ Mogarych, от вопроса ушли, коллеги
![]() Iska, иногда стоит потратить. Тот же вопрос с определением даты для cmd/bat - больной весьма, и решать его раз и насовсем никто не хочет, у меня в одном батнике вообще та еще хрень работает - cmd запускает posh, тот дергает несколько значений (в т.ч. и дату с перемоткой на неделю назад) и складывает их в файл, откуда эти значения забираются обратно cmd. Писано еще года три назад, костыль, конечно, но костыль прям таки титановый, не ломается, зараза! А вот то что этот костыль заменил - ломалось, по крайней мере 1-2 раза в месяц приходилось искать куда подевалось то, что должно было лежать вот в этом конкретном "здесь", а не в том "здесь", которое "там". DJ Mogarych, большей частью согласен, однако есть одно "но": Iska говорит в первую очередь о скриптовых языках, в них изменения если и происходят, то не столь агрессивные как в приведенном примере (обычно). |
Отправлено: 15:04, 11-01-2018 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - [решено] Создание папки с датой в названии и копирование туда файлов | 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 |
|