Vbscript &引用;“类型不匹配”;FileSystemObject.GetFile出错
此脚本使用随机生成的名称创建文本文件。我希望它的属性是隐藏系统,所以我用Vbscript &引用;“类型不匹配”;FileSystemObject.GetFile出错,vbscript,filesystemobject,Vbscript,Filesystemobject,此脚本使用随机生成的名称创建文本文件。我希望它的属性是隐藏系统,所以我用File.Attributes应用了它 无论如何,在运行此脚本时,会创建文本文件,但在应用其属性时,会抛出以下错误: 类型不匹配:“GetFile”(第7行) 代码如下: Dim FSO, TList, WshShell Set FSO = WScript.CreateObject("Scripting.FileSystemObject") Set WshShell = WScript.CreateObject("WScr
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
或其他东西。我说得对吗
是什么原因导致此错误?该方法返回一个对象。发生错误的原因是需要一个字符串作为输入参数。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