0
我正在嘗試使用JavaScript語法在WSH中進行一些簡單的文件比較。 我使用Windows XP SP3,和腳本通過的Cscript.exe運行WSH中的日期類型(以及與日期對象的區別)
我的問題來自於文件對象的dateLastModified財產,至極不處理通常的日期操作功能 - 就像getDay()或和getFullYear ()
看來微軟的Javascript有兩種類型的日期 的下面的代碼示例:
var fso = WSH.CreateObject("Scripting.FileSystemObject")
f = fso.getFile('C:\\WINDOWS\\notepad.exe')
WSH.echo(f.Name)
WSH.echo(f.dateLastModified +" |type = "+ typeof(f.dateLastModified))
var d = new Date()
WSH.echo(d +" |type = "+ typeof(d))
而這裏的輸出我得到
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
notepad.exe
Sun Apr 13 19:34:16 UTC+0200 2008 |type = date
Tue Jul 17 14:28:08 UTC+0200 2012 |type = object
當然,如果我嘗試:
WSH.echo(f.dateLastModified.getFullYear())
我得到一個錯誤,告訴f.dateLastModified不是一個對象
所以,我知道如何操縱經典Date對象, 但如何我對fileSystemObject給出的日期類型做了同樣的事情嗎?
是否可以將一種類型轉換爲另一種類型?
工作太棒了!我只是想知道爲什麼我會將Date對象轉換回日期值? – 2012-07-18 08:59:58
@ dev.greg:日期值類型是Visual Basic和ActiveX對象使用的類型。 'Scripting.FileSystemObject'是其中一個ActiveX對象的例子。一些對象方法需要'date'值作爲它們的參數,幸運的是,JavaScript可以自動將Date值轉換爲日期值(但不是相反)。 'getVarDate'方法可能與用於自動轉換的方法相同,並且爲了靈活性而可以訪問。像'toString'和'valueOf'方法。 – Jay 2012-07-18 12:29:47