设置文件属性filesystemobject javascript

时间:2017-12-29 16:23:57

标签: javascript windows activex wsh

我已经创建了一个文件作为网络驱动器上脚本的一部分,我试图将其隐藏起来,这样如果脚本再次运行,它应该能够看到该文件并对其中包含的信息采取行动但是我这样做有困难。到目前为止我所拥有的是:

function doesRegisterExist(oFs, Date, newFolder) {
    dbEcho("doesRegisterExist() triggered");
    sExpectedRegisterFile = newFolder+"\\Register.txt"
    if(oFs.FileExists(sExpectedRegisterFile)==false){
        newFile = oFs.OpenTextFile(sExpectedRegisterFile,8,true)
        newFile.close()
        newReg = oFs.GetFile(sExpectedRegisterFile)
        dbEcho(newReg.Attributes)
        newReg.Attributes = newReg.Attributes+2
    }

}

Windows Script Host实际上并不会在此处产生错误,并且脚本会以竞争方式运行。我在网上找到的唯一指南我一直试图从VBscript翻译成功有限。

传递给此函数的变量大致声明为

var oFs = new ActiveXObject("Scripting.FileSystemObject")
var Date = "29-12-2017"
var newFolder = "\\\\File-Server\\path\\to\\folder"

我知道ActiveX对很多人来说都是一个肮脏的词,我甚至应该考虑使用它,但它确实非常适合我想要做的事情。

请帮忙。

1 个答案:

答案 0 :(得分:0)

sExpectedRegisterFolder解析为\\\\File-Server\\path\\to\\folder\\Register,这是一个文件夹,而不是文件。

当我将代码包装到try / catch块中时,我得到Error: file not found

我也在文本文件上测试了代码,然后就可以了。

如果您要将文件夹设置为隐藏,那么您使用了错误的方法。 或者,如果要将文件更改为隐藏,则忘记包含文本路径。 (编辑:或者如果Register是文件名,请添加文件类型.txt?)

https://msdn.microsoft.com/en-us/library/6tkce7xa(v=vs.84).aspx中所述,您将GetFile更改为GetFolder  该文件夹将被正确隐藏。