Войти

Показать полную графическую версию : [решено] datecreated - формат вывода, непонятки


foxbat
04-02-2009, 16:04
Добрый час ! У меня такая задача, автоматизировать периодическое копирование файлов с удалённой машины, файлы должны именоваться датой, т.е. файлы будут добавляться, а не перезаписываться. Дату для названия я решил брать из свойств копируемого файла - его дату создания. Опыта скрипто писания пока мало, поэтому вопрос такой. Если к переменно targetpath я добавляю строковую константу "e:\\" то формат даты отображается не так как если бы без неё. Почему ? Как из возврата datecreated "изьять" только дату, месяц и год ?

var fso = WScript.CreateObject("scripting.filesystemobject");
var file = fso.getfile("c:\copy_with_add.js");
WScript.Echo(file.DateCreated);
var targetpath="e:\\"+file.datecreated;
WScript.Echo(targetpath);
//fso.copyfile("c:\copy_with_add.js",targetpath);

C:\>cscript //nologo copy_with_add.j
04.02.2009 13:22:25
e:\Wed Feb 4 13:22:25 UTC+0300 2009

Petya V4sechkin
04-02-2009, 17:47
foxbat, как-то так:
var fso = WScript.CreateObject("scripting.filesystemobject");
var file = fso.getfile("c:\copy_with_add.js");
WScript.Echo(file.DateCreated);
var d = new Date(file.datecreated);
var targetpath = "e:\\" + d.getYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
WScript.Echo(targetpath);

foxbat
05-02-2009, 08:49
понятно, спасибо, а почему к месяцу единицу прибавляем ? там с нуля отчёт идёт ? и всё таки почему в моём примере формат даты выводился по разному ? это зависит от контекста, т.е. если выводим дату вместе со строковой константой то она в виде текста обрабатывается (Wed Feb 4 13:22:25 UTC+0300 2009) ? а если только одну дату выводим то какой то другой формат даты 04.02.2009 13:22:25..

Petya V4sechkin
05-02-2009, 09:12
а почему к месяцу единицу прибавляем ? там с нуля отчёт идёт ?
Метод getMonth (http://msdn.microsoft.com/ru-ru/library/757a601x.aspx)
Метод getMonth возвращает целое число в диапазоне от 0 до 11, которое указывает значение месяца из объекта Date. Возвращаемое целое число не является традиционным номером месяца. Оно на единицу меньше.
и всё таки почему в моём примере формат даты выводился по разному ?
Ну, по-разному выполняется преобразование типов при выводе даты и конкатенации строки с датой. Все вопросы к биллу гейтсу.

foxbat
05-02-2009, 09:36
Ну, по-разному выполняется преобразование типов при выводе даты и конкатенации строки с датой. Все вопросы к биллу гейтсу. »
Спасибо ! Понятно. Вечером поговорю с Биллом :)




© OSzone.net 2001-2012