Показать полную графическую версию : [решено] Как вписать дату и время в название файла?
navigator19
12-03-2011, 12:33
Собственно вопрос как вписать дату и время в название файла при копировании
Вот пример:
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
navigator19, переделайте по этому образцу:
Из "D:\Backup\%date%_Form.dat" в "D:\Backup\" & Date & "_Form.dat"
navigator19
12-03-2011, 14:26
Огромное спасибо!
А как к названию файла ещё и время добавить?
Я бы ещё предложил использовать не просто дату в локальном формате, а в виде YYYYMMDD (для целей визуальной сортировки файлов по алфавиту): Серый форум / VBScript: получение формата дата-время для имени файла (http://forum.script-coding.com/viewtopic.php?id=5067), почерпнутую у amel27 (http://forum.oszone.net/member.php?userid=38813) здесь (http://forum.oszone.net/post-1518362.html#post1518362).
SendMessage
12-03-2011, 16:28
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
А как к названию файла ещё и время добавить? »
На этом примере разберешься? Я думаю, без проблем.
2SendMessage: угу, аналогично. На VBScript варианты есть, на JScript — уже сложнее. В первую очередь вариант (http://forum.oszone.net/post-1518362.html#post1518362) amel27 мне понравился тем, что это готовый вариант для пакетного файла; и, в первую очередь — формат не зависит от региональных настроек ;), а файлы с датой/временем в имени я предпочитаю держать именно в японском формате даты «YYYYMMDD», дабы они сразу были визуально отсортированы.
navigator19
12-03-2011, 20:01
Не понял как именно применить это
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
к скрипту, куда это вставить? »
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
Спасибо, но файл получается Form.dat_20110312235253 без разделителей как их вставить?
Спасибо, но файл получается Form.dat_20110312235253 без разделителей как их вставить? »
Извините, что вклиниваюсь в диалог...
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
Не совсем, так получается 13.3.2011_0.49.49_Form.dat а нужно 13.03.2011_00.49.49_Form.dat двойные цифры где число меньше 10!
Не совсем, так получается 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
Во, это то самое! Всем большое спасибо!
SendMessage
13-03-2011, 03:37
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
SendMessage, извини, был не внимателен, navigator19 - запутал, то ему то, то ему это, нет, чтобы самому подумать. Да, конечно, твоё решение, тоже правильно.
А на счёт DatePart - так это он просто под руку попался, но ведь тоже работает?
И за один ноль, спасибо.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.