0

我正在尝试使用 Javascript 语法在 WSH 中进行一些简单的文件比较。我使用的是 windows XP SP3,脚本是通过 Cscript.exe 运行的

我的问题来自 File 对象的 dateLastModified 属性,它不处理通常的日期操作函数——比如 getDay() 或 getFullYear()

似乎 Microsoft 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 给我的这个日期类型做同样的事情呢?

是否可以将一种类型转换为另一种类型?

4

1 回答 1

2

您可以通过使用该值作为对象构造函数的参数创建一个新对象来将一个date值转换为一个对象。像下面的例子:DateDate

var fileDate = new Date( f.dateLastModified );
WSH.echo( fileDate + ' |type = ' + typeof(fileDate) );
WSH.echo( fileDate.getFullYear());

要将Date对象转换为date值,请使用以下命令:

var dateVal = fileDate.getVarDate();
WSH.echo( dateVal + ' |type = ' + typeof(dateVal) );
于 2012-07-17T15:19:10.020 回答