Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как вписать дату и время в название файла? (http://forum.oszone.net/showthread.php?t=201794)

navigator19 12-03-2011 12:33 1633136

Как вписать дату и время в название файла?
 
Собственно вопрос как вписать дату и время в название файла при копировании
Вот пример:
Код:

set service = GetObject ("winmgmts:") 
dim i 
i = 0 
 
do 
for each Process in Service.InstancesOf ("Win32_Process") 
    If Process.Name = "Maxthon.exe" then 
        i = 1 
    End If 
next 
 
If i = 0 then 
    Dim FSO 
    Set FSO = CreateObject("Scripting.FileSystemObject") 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\Form.dat",        "D:\Backup\%date%_Form.dat" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\history2.dat",    "D:\Backup\%date%_history2.dat" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\Session.ini",      "D:\Backup\%date%_Session.ini" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\LastSession.ini",  "D:\Backup\%date%_LastSession.ini" 
       
    wscript.quit 
End if 
i = 0 
WScript.Sleep 20 * 1000 
loop

но при копировании дата не вписывается, подскажите где может быть ошибка?

SendMessage 12-03-2011 12:49 1633146

navigator19, переделайте по этому образцу:
Из "D:\Backup\%date%_Form.dat" в "D:\Backup\" & Date & "_Form.dat"

navigator19 12-03-2011 14:26 1633204

Огромное спасибо!
А как к названию файла ещё и время добавить?

Iska 12-03-2011 14:29 1633206

Я бы ещё предложил использовать не просто дату в локальном формате, а в виде YYYYMMDD (для целей визуальной сортировки файлов по алфавиту): Серый форум / vbscript: получение формата дата-время для имени файла, почерпнутую у amel27 здесь.

SendMessage 12-03-2011 16:28 1633282

Iska, а я в свое время такое средствами VBS реализовывал. В принципе, то же самое.
Код:

DT = Now
DateVal = Year(DT) & _
          Right("0" & Month(DT), 2) & _
          Right("0" & Day(DT), 2) & _
          Right("0" & Hour(DT), 2) & _
          Right("0" & Minute(DT), 2) & _
          Right("0" & Second(DT), 2)
WScript.Echo DateVal

Цитата:

Цитата navigator19
А как к названию файла ещё и время добавить? »

На этом примере разберешься? Я думаю, без проблем.

Iska 12-03-2011 16:52 1633295

2SendMessage: угу, аналогично. На VBScript варианты есть, на JScript — уже сложнее. В первую очередь вариант amel27 мне понравился тем, что это готовый вариант для пакетного файла; и, в первую очередь — формат не зависит от региональных настроек ;), а файлы с датой/временем в имени я предпочитаю держать именно в японском формате даты «YYYYMMDD», дабы они сразу были визуально отсортированы.

navigator19 12-03-2011 20:01 1633378

Не понял как именно применить это
Код:

DT = Now
DateVal = Year(DT) & _
          Right("0" & Month(DT), 2) & _
          Right("0" & Day(DT), 2) & _
          Right("0" & Hour(DT), 2) & _
          Right("0" & Minute(DT), 2) & _
          Right("0" & Second(DT), 2)
WScript.Echo DateVal

к скрипту, куда это вставить?

SendMessage 12-03-2011 20:22 1633391

Цитата:

Цитата navigator19
к скрипту, куда это вставить? »

Код:

If i = 0 then 
    Dim FSO, DT, DateVal
    DT = Now
    DateVal = Year(DT) & _
              Right("0" & Month(DT), 2) & _
              Right("0" & Day(DT), 2) & _
              Right("0" & Hour(DT), 2) & _
              Right("0" & Minute(DT), 2) & _
              Right("0" & Second(DT), 2)
    Set FSO = CreateObject("Scripting.FileSystemObject") 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\Form.dat",        "D:\Backup\" & DateVal & "_Form.dat" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\history2.dat",    "D:\Backup\" & DateVal & "_history2.dat" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\Session.ini",      "D:\Backup\" & DateVal & "_Session.ini" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\LastSession.ini",  "D:\Backup\" & DateVal & "_LastSession.ini" 
       
    wscript.quit 
End if


navigator19 12-03-2011 21:53 1633429

Спасибо, но файл получается Form.dat_20110312235253 без разделителей как их вставить?

OSArev 12-03-2011 22:35 1633465

Цитата:

Цитата navigator19
Спасибо, но файл получается Form.dat_20110312235253 без разделителей как их вставить? »

Извините, что вклиниваюсь в диалог...
Цитата:

Цитата navigator19
navigator19 »

, ты этого хочешь?
Код:

d = DatePart("d", date)&"." & DatePart("m", date) &"." & DatePart("yyyy", date) ' дата
t = DatePart("h", time)&"." & DatePart("N", time) &"." & DatePart("S", time)    ' время
' Временные значения можно переставлять, как хочешь.
'---------------------------------------------------------------------------
    Set FSO = CreateObject("Scripting.FileSystemObject") 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\Form.dat",        "D:\Backup\" &d&"_"&t&"_Form.dat" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\history2.dat",    "D:\Backup\" &d&"_"&t&"_history2.dat" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\Session.ini",      "D:\Backup\" &d&"_"&t&"_Session.ini" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\LastSession.ini",  "D:\Backup\" &d&"_"&t&"_LastSession.ini"


navigator19 12-03-2011 22:46 1633477

Не совсем, так получается 13.3.2011_0.49.49_Form.dat а нужно 13.03.2011_00.49.49_Form.dat двойные цифры где число меньше 10!

OSArev 13-03-2011 00:30 1633536

Цитата:

Цитата navigator19
Не совсем, так получается 13.3.2011_0.49.49_Form.dat а нужно 13.03.2011_00.49.49_Form.dat двойные цифры где число меньше 10! »

А, так..?
Код:

strDateTime=Right("00" & DatePart("d",Date),2) & "." & _
Right("00" & DatePart("m",Date),2) & "." & _
DatePart("yyyy",Date) & "_" & _
Right("00" & DatePart("h",Time),2) & "." & _
Right("00" & DatePart("n",Time),2) & "." & _
Right("00" & DatePart("s",Time),2)
' Временные значения можно переставлять, как хочешь.
'---------------------------------------------------------------------------
    Set FSO = CreateObject("Scripting.FileSystemObject") 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\Form.dat",        "D:\Backup\" &strDateTime&"_Form.dat" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\history2.dat",    "D:\Backup\" &strDateTime&"_history2.dat" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\Session.ini",      "D:\Backup\" &strDateTime&"_Session.ini" 
    FSO.CopyFile "D:\Maxthon2\SharedAccount\Data\LastSession.ini",  "D:\Backup\" &strDateTime&"_LastSession.ini"


navigator19 13-03-2011 01:53 1633573

Во, это то самое! Всем большое спасибо!

SendMessage 13-03-2011 03:37 1633585

OSArev, совсем ни к чему было переделывать с использованием DatePart и два нуля здесь тоже не нужны - одного достаточно.
Код:

DT = Now
DateVal = Right("0" & Day(DT), 2) & "." & _
          Right("0" & Month(DT), 2) & "." & _
          Year(DT) & "_" & _       
          Right("0" & Hour(DT), 2) & "." & _
          Right("0" & Minute(DT), 2) & "." & _
          Right("0" & Second(DT), 2


OSArev 13-03-2011 10:30 1633672

SendMessage, извини, был не внимателен, navigator19 - запутал, то ему то, то ему это, нет, чтобы самому подумать. Да, конечно, твоё решение, тоже правильно.
А на счёт DatePart - так это он просто под руку попался, но ведь тоже работает?
И за один ноль, спасибо.


Время: 23:09.

Время: 23:09.
© OSzone.net 2001-