"Type Mismatch" FileSystemObject.GetFile 错误
"Type Mismatch" Error with FileSystemObject.GetFile
此脚本使用随机生成的名称创建一个文本文件。我希望它的属性是隐藏系统,所以我用 File.Attributes
.
应用它
无论如何,虽然 运行 这个脚本,文本文件被创建,但是当涉及到应用它的属性时,它抛出以下错误:
Type Mismatch: 'GetFile' (Line: 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
不是 return Scripting.File
,它可能是 TextStream
之类的。我说得对吗?
这里出现此错误的原因是什么?
CreateTextFile method returns a TextStream object. The error occurs because GetFile 需要一个字符串作为输入参数。 TextStream 无法设置文件的属性,因此构建字符串路径名是设置新文件属性的一种方法:
Dim FSO, WshShell, TempFolder, TempFilename
Const HiddenAttribute = 2
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
TempFolder = WshShell.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Temp"
If Not FSO.FolderExists(TempFolder) Then
FSO.CreateFolder(TempFolder)
End If
TempFilename = TempFolder + "\" + FSO.GetTempName
CreateNewFile(TempFilename)
FSO.GetFile(TempFilename).Attributes = HiddenAttribute
Sub CreateNewFile(filename)
Dim TS
Set TS = FSO.CreateTextFile(filename, True)
TS.Close
End Sub
此脚本使用随机生成的名称创建一个文本文件。我希望它的属性是隐藏系统,所以我用 File.Attributes
.
无论如何,虽然 运行 这个脚本,文本文件被创建,但是当涉及到应用它的属性时,它抛出以下错误:
Type Mismatch: 'GetFile' (Line: 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
不是 return Scripting.File
,它可能是 TextStream
之类的。我说得对吗?
这里出现此错误的原因是什么?
CreateTextFile method returns a TextStream object. The error occurs because GetFile 需要一个字符串作为输入参数。 TextStream 无法设置文件的属性,因此构建字符串路径名是设置新文件属性的一种方法:
Dim FSO, WshShell, TempFolder, TempFilename
Const HiddenAttribute = 2
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
TempFolder = WshShell.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Temp"
If Not FSO.FolderExists(TempFolder) Then
FSO.CreateFolder(TempFolder)
End If
TempFilename = TempFolder + "\" + FSO.GetTempName
CreateNewFile(TempFilename)
FSO.GetFile(TempFilename).Attributes = HiddenAttribute
Sub CreateNewFile(filename)
Dim TS
Set TS = FSO.CreateTextFile(filename, True)
TS.Close
End Sub