![]() |
Создание папок по имени и перемещение файлов
Добрый день. Помогите алгоритмом решения, примером, готовым решением. Задача обстоит так следующим образом.
В папке D:\backup множество файлов по типу D_Воскресенье_56_my-files_backup.2019-06-09-10-00_00 Есть задача раскладывать их в папку "Неделя 27" -> ''D_Воскресенье" и .т.д. Папки должны генерироваться автоматически в зависимости от того какая неделя. Нашел скрипт который создает папку беря за основу часть из названия файла. А вот как прикрутить создание папки с номером недели и перемещать файлы в актуальную неделю не могу найти решения. Код:
@echo off |
Цитата:
2019-06-09 (если это гггг-мм-дд) это воскресенье 23 недели. |
Цитата:
|
xan08,
Использовал известные приёмы для возни с датами, если основываться только на дате, то получается длинно
Код:
@Echo Off |
xan08, Если в имени Ваших файлов маска именно такая, как Вы указали, то есть:
D_Имядня_номернедели_траляляляля, то решение многократно проще: Код:
@Echo Off С точки зрения алфавитной сортировки при просмотре папок, ИМХО, имена папок с днём недели выгодно дублировать номером дня в неделе, например: D:\backup\Неделя 23\D3_среда, D:\backup\Неделя 23\D7_воскресенье
Код:
@Echo Off |
Цитата:
Цитата:
|
Цитата:
Код:
rem FOR /F "tokens=%DWeek% delims= " %%i IN ("Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье") DO Set "DWeek=%%i" Код:
FOR /F "tokens=%DWeek% delims= " %%i IN ("Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье") DO Set "DWeek=%%i" Цитата:
Я уже писАл, что использовал известные приёмы для работы с датами
Я взял готовые коды, с которыми когда-то давно столкнулся, не берусь вспомнить, где. Оформил их в виде процедур, чтобы использовать по мере надобности и не изобретать велосипед. Можно найти исходные формулы, но лень.
Вот пример использования этих процедур Код:
@Echo Off |
Цитата:
powershell Код:
get-date -uf %V #number of 01-53 |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Если кому-либо, захочется плясать от собственной печки, то тут, конечно, ничем не поможешь, это понятно. Но если уж использовать в ПО понятия, которые стандартизированы, то зачем изобретать велосипеды? Надо просто заглянут в документацию и следовать тому, что в ней написано. Имхо. :) |
YuS_2, дело в том, что реалии существовали задолго до появления стандартов и какого-либо ПО в принципе.
|
Цитата:
Нет, можно конечно и по юлианскому календарю жить... но, имхо, это равнозначно плаванию против течения... непродуктивно, то бишь. |
YuS_2, знаете, это не мне надо рассказывать. Вон, те же Штаты по сю пору длину меряют не метрами, объёмы — не литрами, первая неделя в году у них всё еще начинается с первого января, да и сама неделя всё ещё начинается у них с воскресенья. И ладно бы они одни…
|
Цитата:
Проблемы различных летоисчислений, учета времени и прочего, связанного с календарями, как раз, следствие отсутствия международных стандартов. А англосаксы, всегда были ведь впереди планеты всей с навязчивыми и навязываемыми идеями... а все нормальные и вменяемые, рано или поздно, принимают международные стандарты (во всяком случае, по достаточно важным аспектам жизни), чем сильно упрощают жизнь себе и другим... И да, мы ведь живем в реалиях стран проживания, правильно? А межгосударственный стандарт, который создан на основе международного, принят ещё с 2004г., причем принят не одной страной, что в нем самом и записано. Поэтому считаю, что не имеет смысла оглядываться на футо-мили-пинты, а жить по тем самым стандартам, которые приближены к международным. Так надежнее и проще, имхо. |
YuS_2, я не знаком с аргументацией, почему по ГОСТ ИСО 8601-2001 "ПРЕДСТАВЛЕНИЕ ДАТ И ВРЕМЕНИ" первая неделя года должна содержать первый четверг года, для каких отраслей это критично,я не берусь судить.
Речь о другом: есть клиент с поставленной задачей, которому надо как-то структурировать бэкапы. И, в данном случае, способ нумерации недель я бы отдал на откуп клиенту, он должен определиться, зачем ему это нужно. Интуитивно мне ближе "американский" способ нумерации недель- неделя с 1 января первая, но, когда принимался ГОСТ, очевидно, были серъезные основания делать по иному. |
Цитата:
"Почему от понедельника до субботы — пять дней, а от субботы до понедельника — два?" |
mwz, зачпм вообще такое нужно? Имхо, чтобы избежать двойного счета одной недели в разных годах. Иначе коллизия: число недель за несколько лет меньше чем сумма количества недель за каждый год в периоде. Наверное, с точки зрения заключения договоров, где сроки исчислены в неделях, это важно. С точки зрения хранения бэкапов - не думаю, что это удобно. То есть, возвращаясь к теме, клиенту виднее
|
Цитата:
1. пусть будет 1 января - первая неделя... 2. 1 января - допустим суббота. Внимание вопросы: 1. Сколько недель в году? 2. Какая неделя в году последняя? 3.1 01.01, суббота - это какая неделя? 3.2 31.12, пятница - это какая неделя? 3.3 пятница и суббота - это одна неделя или две? как-то так... как будут в "американском" стандарте звучать ответы? Международным стандартом описываются именно такие вот вопросы, вот такими ответами: 1. В году 52 или 53 недели. 2. Предыдущая первой неделе следующего года. 3.1 Последняя неделя предыдущего года. 3.2 Последняя неделя уходящего года. 3.3 Одна, единственная неделя. Цитата:
Четверг взят как промежуточное звено, то бишь среднее значение календарной недели. Там же, из тех же соображений, есть ещё и упоминание 4 января, по которому тоже можно определять первую календарную неделю календарного года. В каких отраслях это критично - я тоже не возьмусь судить, но во всяком случае, никаких разночтений этот стандарт не допускает. И это правильно, независимо от области применения... если этого не описывать в стандарте, то может возникнуть вольная трактовка подсчета недель и какие изощренные умы могли бы этим воспользоваться и в каких целях, можно только догадываться. |
Время: 15:10. |
Время: 15:10.
© OSzone.net 2001-