1

Тема: VBS: DateCreated отделить месяц, год

Научился разбивать текущее время на дни, месяцы, годы:



Function TakeFolderTime()
    
    RetCode = 0
    
    dim DateNow, NameDDMMYYYY, NameHHNNSS
    dim y, m, d, h, n, s
    DateNow = now
    ' год
    y = DatePart("yyyy", DateNow) 
    ' месяц
    m = DatePart("m", DateNow) 
    ' день
    d = DatePart("d", DateNow) 
    'чаc
    h = DatePart("h", DateNow) 
    'минута
    n = DatePart("n", DateNow) 
    'секунда
    s = DatePart("s", DateNow) 
    
    If Len(m) = 1 Then
        m = "0" &m
    End If
    
    If Len(d) = 1 Then
        d = "0" &d
    End If
    
    If Len(h) = 1 Then
        h = "0" &h
    End If
    
    If Len(n) = 1 Then
        n = "0" &n
    End If
    
    If Len(s) = 1 Then
        s = "0" &s
    End If
        
    NameDDMMYYYY = d &"_" &m &"_" &y
    NameHHNNSS = h &"_" &n &"_" &s
    TakeFolderTime = NameHHNNSS
    
End Function


А вот как определить месяц и год создания файла ?
Может есть корректные методы? А то не очень хочется разделять или парсить строку.



Dim objFso, File, 
Set objFso = CreateObject("Scripting.FileSystemObject")
Set File = objFso.GetFile("D:\Autorun.inf")
MsgBox File.DateCreated

Показывает все вместе, а как отделить и оставить год и месяц например? И полученный список отсортировать по месяцу и году?

2

Re: VBS: DateCreated отделить месяц, год

wildwolf007,

wildwolf007 пишет:

А вот как определить месяц и год создания файла ?

Набираем в GOOGLE:

VBScript работа с датами

И о чудо ! Столько результатов !

+ открыть спойлер

http://risovach.ru/upload/2013/03/mem/ofigela_13008481_orig_.jpg

wildwolf007 пишет:

И полученный список отсортировать по месяцу и году?

Вариантов полно.

1) "Самописными" функциями сортировки массивов
2) Функцией "sort" из JavaScript, если использовать его массивы
3) Через Recordset

и т.п.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

3

Re: VBS: DateCreated отделить месяц, год

Xameleon, ага. Мне ещё в последнее время понравилось «System.Collections.ArrayList» пользовать: есть везде при наличии .Net Framework, причём класс Automation вроде как уже зарегистрирован в системе.

ArrayList Class (System.Collections)
Hey, Scripting Guy!: Be Careful What You Say
VBScript Scripting Techniques: ArrayLists

4

Re: VBS: DateCreated отделить месяц, год

alexii, так точно. Было дело. Мало с ним знаком. Сейчас полазил по TLB там ещё и System.Collections.SortedList имеется. Надо будет поизучать. )

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

5

Re: VBS: DateCreated отделить месяц, год

wildwolf007 пишет:

Показывает все вместе, а как отделить и оставить год и месяц например?

Все более, чем очевидно.

with (new ActiveXObject('Scripting.FileSystemObject')) {
  var raw = new Date(GetFile(WScript.ScriptName).DateCreated);
  WScript.echo(raw.getMonth() + 1);
  WScript.echo(raw.getYear());
}

С сортировкой уже подсказали выше.

6 (изменено: dab00, 2014-10-03 20:44:59)

Re: VBS: DateCreated отделить месяц, год

Помню была тема на форуме по сортировке на VBS: методом пузырька ("самописный" вариант) и через Recordset, тру

7

Re: VBS: DateCreated отделить месяц, год

greg zakharov, как я понял по префиксу заголовка, автор интересовался решением на VBS, а не на JS ))

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

8 (изменено: Flasher, 2014-10-04 02:12:58)

Re: VBS: DateCreated отделить месяц, год

+ 2 Xameleon

Вроде бы очевидно, что этот момент нарушается "повсеместно" и совершенно сознательно. Т.е. сам тезис в осмысленности постановки этого префикса под большим вопросом, раз это позволительно и не модерируется. Можно поставить на повестку в обсуждениях форумного этикета.
Насколько я понимаю, некоторые пренебрегают данной инструкцией в угоду удобству, упёртости и привычкам, не напрягаясь на предмет чьих то знаний, навыков, возраста и забывая, что входить в положение в ряде ситуаций дело (во избежании растягивания диалога и дум) попросту необходимое.
Я лично за регламент. В данном и близлежащем случае он сам собой напрашивается.

9

Re: VBS: DateCreated отделить месяц, год

Уважаемые форумчане спасибо за ответы. Прошу прощение если кого-то обидел, я знаю порой как "размазывают на форумах" когда новичок задал вопрос, который обсуждался 100 тем назад, но прежде чем задать данный вопрос я один вечер просидел в поисках, и думал, что при работе с датой создания файлов другой подход чем ежели просто с работой даты.
Прошу не судить строго ведь бывает когда вроде бы знаешь вроде бы разобрался со сложным, а вот на пустяках спотыкаешься и не идет дальше, т.к. нет понимания до конца во всех ньюансах. Понимание во всех ньансах и быстрый поиск нужного, я думаю это прежде всего опыт, а опыт приходит со временем и с этим ничего не поделаешь. Все же не рождаются сразу со знаниями всех языков программирования.

Да метод сортировки интересовался именно на VBS про метод пузырька читал на Вашем форуме просто позабыл спасибо, что напомнили.

На Вашем форуме я почти год и могу сказать когда начинаешь изучать что-то новое, бывали такие ситуации когда вроде бы прочел и все изучил, но появляется проблема именно в твоей задаче, и когда тебе разъясняют какой-то раздел более подробно, и пускай даже посылают на поисковую систему акцентируя на поисковой запрос, только тогда приходит понимание и решение вопроса.

Если для Вас критичны такие "глупые вопросы", которые появляются в темах так почему тогда открыта регистрация для новых пользователей? Закройте регистрацию и тогда здесь будут только опытные пользователи и никогда не будет "глупых вопросов".

10

Re: VBS: DateCreated отделить месяц, год

Но мне кажется благодаря иногда таким глупым вопросам, появляются новые решения более элегантные и обдуманные и более опытные. Когда любой из Вас закрывал примерно такой вопрос у него был определенный уровень в данной области, а спустя год этот уровень уже был наработан и когда через год данный форумчанин видит ту же проблему, которую он решал по своему год назад у него уже другие знания, умения, навыки и решение которое его коллеги форумчане могут еще дополнить и помочь и появится новое оригинальное решение.

11

Re: VBS: DateCreated отделить месяц, год

wildwolf007
Не понял, зачем это полотенце, если вина не вопрошающего, а отвечающего.
Пользуйтесь лучше литературой по vbs, там с поиском проблем нет. Всё ищется моментом.
На всякий, для вытаскивания даты кроме

MsgBox DateValue(Now)

есть ещё

MsgBox FormatDateTime(Now, 2)

12

Re: VBS: DateCreated отделить месяц, год

Спасибо.

13

Re: VBS: DateCreated отделить месяц, год

OFF:
Xameleon, а есть ли такие положения в правилах форума, строго регламентирующие деление WSH на VBS и JS? Если же вдаваться в демагогию "форумных этикетов" и "пренебрежением данных инструкций в угоду удобству", тогда изначально следовало бы отводить отдельную ветку, например, под JScript и JavaScript, предварительно снабдив ветки пространными рассуждениями об их различиях в предназначении; не менее сомнительным представляется деление WSH на VBS и JS, - иначе получается что есть идеологически правильные, кто является асом VBS, и эдакая маргинальня простойка WSH - JScript'еры. И где, спрашивается, как таковая философия WSH? Впрочем, должно быть ее никогда и не было, были лишь предпочтения, а также левые и правые. Но если "партия" считает иначе, то смыслf постинга на форуме, который сам не придерживается курса объявленных им разделов (в данном случае WSH), попросту нет. А раз так, то покорнейше прошу заблокировать мою учетную запись.

14

Re: VBS: DateCreated отделить месяц, год

+ OFF
greg zakharov пишет:

в данном случае WSH

В данном случае префикс - "VBS". Если бы был "WSH", как это делается в ряде случаев, то было бы всё правомерно, и обсуждать было бы нечего.

15

Re: VBS: DateCreated отделить месяц, год

Скажем так: «партия» (в данном случае — сугубо в моём лице) в принципе ничего не имеет против того, что в теме по VBScript размещаются решения и на смежном с ним JScript. Причины размещения могут быть разными, начиная от того, что на JScript решение может быть более эффективным и до… не знаю, сами придумайте.

16

Re: VBS: DateCreated отделить месяц, год

+ 2 alexii

Т.е. если я напишу в контексте WSH на любом ином, возможно, никому из потенциальных участников незнакомом языке, то только его (WSH) присутствием всё будет оправдано? Где логика? Вопрос осмысленности в префиксе так и не растолкован. На кой он вообще сдался в таком случае?

17

Re: VBS: DateCreated отделить месяц, год

Т.е. если я напишу в контексте WSH на любом ином, возможно, никому из потенциальных участников незнакомом языке, то только его (WSH) присутствием всё будет оправдано?

Давайте так — только в том случае, если у него есть движок для WSH, как, например, у идущих в комплекте VBScript и JScript или как у стороннего Python'а (кстати сказать: примеры — видел, а чтобы кто-нибудь реально пользовал Python под WSH — не попадалось).

Бывает и так: скажем — знает человек только пакетные файлы, и то — худо-бедно. Просит сделать в соответствующем разделе на них некое задание. Вы видите, что можно-то оно можно, но гораздо проще/эффективнее/надёжнее сделать сие на WSH, PoSH, AHK, AutoIT, KiXtart, Python…

Посему я не хочу делать прямой и явный запрет на уход темы из конкретного раздела в сопутствующие технологии. Если уж явно тематика в процессе перекосится с одного языка на другой — подскажите, всегда можно перенести тему в другой раздел.

На кой он вообще сдался в таком случае?

Для поиска. Прежде всего — в оффлайн-справке, созданной по страницам форума.

18 (изменено: Flasher, 2014-10-06 20:09:33)

Re: VBS: DateCreated отделить месяц, год

alexii пишет:

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

Стоп. Тут нужно разделять две вполне ясные ситуации:
1) запрос на любое решение, лишь бы работало (и для этого вроде бы существует свалочный раздел "Прочие скриптовые технологии и близкие к ним");
2) запрос на решение в рамках указанного префиксом языка для использования кода в в близких текущей по смыслу задачах.
К первой ситуации как раз и относится потенциально более эффективное решение.
Но как мы видим, что здесь, что "там" речь идёт о втором случае. Если человек себя никак не зарекомендовал в освоении альтернативного языка, то какой смысл предлагать ему то, что он пропустит мимо глаз, ожидая ответа от другого участника и чаще всего не получая нужного для себя ответа.
В итоге посыл "помогающего" таков: мне лень тебе рассказывать, на чём я это написал, как это внедрять через ScriptControl, WSF и т.д., иди учи, если надо, матчасть, в то время как ему, по-хорошему, надо штудировать и штудировать, согласно префиксу, то, в чём предстоит ещё долгое "плавание". И это, кстати, когда "где-то начинаем", всех нас касается, всезнаек тут нет.

alexii пишет:

Для поиска. Прежде всего — в оффлайн-справке, созданной по страницам форума.

Т.е. - попадёт в нужный раздел или нет? Ну, а смысл ему туда попадать, если примеры приводятся на другом языке?
Или о масках речь? Если да, то можно посмотреть на критерий?

19

Re: VBS: DateCreated отделить месяц, год

Если да, то можно посмотреть на критерий?

Смотрите: Script-Coding-Community-04-20120209.rar (33 331 445).

20

Re: VBS: DateCreated отделить месяц, год

alexii, да у меня всё это имеется. Я про критерий поиска, если он имелся в виду.

21

Re: VBS: DateCreated отделить месяц, год

Я про критерий поиска, если он имелся в виду.

Например:

+ открыть спойлер

http://i.imgur.com/OpOwuWk.png

22 (изменено: Flasher, 2014-10-06 21:37:36)

Re: VBS: DateCreated отделить месяц, год

Это весело, конечно, но хотелось бы увидеть полезный пример, где результатами окажутся префикс языка и решения, точно к нему относящиеся. Не сомневаюсь, что таких критериев тьма, но присутствие префикса хоть как-то должно быть обосновано этим примером.

Add: На секундочку. Почему-то мне кажется, что префикс больше как раз таки может пригодиться в гугл-поиске, нежели в оффлайн-справке, коли в ней можно и так искать нужное в конкретном разделе. Нет?

23

Re: VBS: DateCreated отделить месяц, год

нежели в оффлайн-справке, коли в ней можно и так искать нужное в конкретном разделе. Нет?

Нет. И странно видеть такой вопрос, ведь выше Вы писали в ответ на приведённую ссылку, что:

alexii, да у меня всё это имеется.

24

Re: VBS: DateCreated отделить месяц, год

greg zakharov,

greg zakharov пишет:

OFF:
Xameleon, а есть ли такие положения в правилах форума, строго регламентирующие деление WSH на VBS и JS? Если же вдаваться в демагогию "форумных этикетов" и "пренебрежением данных инструкций в угоду удобству", тогда изначально следовало бы отводить отдельную ветку, например, под JScript и JavaScript, предварительно снабдив ветки пространными рассуждениями об их различиях в предназначении; не менее сомнительным представляется деление WSH на VBS и JS, - иначе получается что есть идеологически правильные, кто является асом VBS, и эдакая маргинальня простойка WSH - JScript'еры. И где, спрашивается, как таковая философия WSH? Впрочем, должно быть ее никогда и не было, были лишь предпочтения, а также левые и правые. Но если "партия" считает иначе, то смыслf постинга на форуме, который сам не придерживается курса объявленных им разделов (в данном случае WSH), попросту нет. А раз так, то покорнейше прошу заблокировать мою учетную запись.

Ууу. Эт не ко мне. Чес слово ))) На форуме уже этот вопрос поднимал. Сначала сделали при создании темы выбор из выпадающего списка с типом языка, а потом убрали. Пытались вроде даже делить на подфорумы. Тоже убрали ) Мой любимый раздел ASP так и вообще грохнули.

Эх было время... NOSTALGIE

Так что я давно не лезу с рекомендациями на эти темы. А то могут и ос[т]удить за излишний пыл ...

+ открыть спойлер

http://cs537422.vk.me/u4153745/docs/56bb5318a980/supergifki_friends.gif?extra=K8RMUVMONHu8GaqD-rb8IFaqRLESc2PnJ9tBQs2JSF_4GafvqTW1u37zyITV687N26UL83zd_6kGRDhbquCiwp2sk-AbEA

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

25 (изменено: Flasher, 2014-10-06 23:54:23)

Re: VBS: DateCreated отделить месяц, год

alexii пишет:

Нет. И странно видеть такой вопрос, ведь выше Вы писали в ответ на приведённую ссылку, что:

alexii, да у меня всё это имеется.

Вовсе не странно. Имеется вообще и имеется в данный момент - не одно и то же. Сейчас доступ появился, и вижу, что там это не реализовано.
У меня банальное предложение для правил: если приводится код на языке, отличном от указанного в префиксе, то автор обязан указывать его название или расширение. ИМО, простое решение, где и волки сыты, и овцы целы. Пишем?