此脚本使用随机生成的名称创建文本文件。我希望它的属性为隐藏系统,因此我将其应用于File.Attributes
。
无论如何,在运行此脚本时,会创建文本文件,但在应用其属性时,会引发以下错误:
类型不匹配:' GetFile' (行:7)
以下是代码:
Dim FSO, TList, WshShell
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set TList = FSO.GetFolder(WshShell.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "/Temp").CreateTextFile(FSO.GetTempName)
FSO.GetFile(TList).Attributes = 22
由于TList
是使用函数CreateTextFile
设置的,因此无法解决导致问题的原因。我认为,函数CreateTextFile
不会返回Scripting.File
,它可能是TextStream
或其他内容。我是对的吗?
这里导致此错误的原因是什么?
答案 0 :(得分:2)
CreateTextFile方法返回TextStream个对象。发生此错误是因为GetFile期望字符串作为输入参数。 TextStream无法设置文件的属性,因此构建字符串路径名是设置新文件属性的一种方法:
try {
// you need to use the fully qualified name, not just the class name
SomeObject object = (SomeObject) Class.forName("com.mypackage.SomeObject").newInstance();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
// here you can handle incorrect config in your XML file
}