我在commonapplicationdata文件夹中使用以下VBscript.i创建了一个文本文件“list.txt”。 通过写入文本文件从变量(strlist)中获取值。
Const Value = &H23&
Const PATH = "\Cape\ibs"
Dim fso ' File System Object
Dim spFile ' Text File object to write
Dim objApplication ' Application object
Dim objFolder ' Folder object
Dim objFolderItem ' FolderItem object
Set objApplication = CreateObject("Shell.Application")
Set objFolder = objApplication.Namespace(Value)
Set objFolderItem = objFolder.Self
sname = objFolderItem.Path & PATH & "\list.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set spFile = fso.CreateTextFile(sname, True)
spoFile.WriteLine(strlist)
spoFile.Close
这是我的疑惑
1>在创建该文件之前,我需要删除旧的“list.txt”,因为在安装过程中 我总是想创建列表文件。所以我想包含删除任何现有文件的代码(任何旧的list.txt), 在创建最新版本之前。在这里我做了以下代码
If fso.FileExists(sname) Then
fso.DeleteFile sname, True
Else
Set spFile = fso.CreateTextFile(sname, True)
spoFile.WriteLine(strlist)
Set objFolderItem = Nothing
Set objFolder = Nothing
Set objApplication = Nothing
Set fso = Nothing
spoFile.Close
End If
是什么时候会第一次创建文件夹,下次会删除它,但我总是想要那个文件(新的一个来自'strlist'的值) 任何人都可以告诉我vbscript代码来做那件事。他们删除了其他部分也只是删除了,下面的东西不起作用意味着创造。
2>在这里我使用简单的'WriteLine'方法(spoFile.WriteLine(strlist))写入“list.txt”,但我读到了我们需要使用的地方 'OpenTextFile'(Const ForWriting = 2)用于写入,如果是这种情况我需要做什么改变,是强制性的吗?
答案 0 :(得分:4)
您需要在作出决定之前移动删除或不删除决定。
If fso.FileExists(sname) Then
'you delete if you find it'
fso.DeleteFile sname, True
End If
'you always write it anyway.'
Set spoFile = fso.CreateTextFile(sname, True)
spoFile.WriteLine(strlist)
Set objFolderItem = Nothing
Set objFolder = Nothing
Set objApplication = Nothing
Set fso = Nothing
spoFile.Close
交替使用常量写入值并使其稍微(非常小)一点,您可以尝试以下方法:
If fso.FileExists(sname) Then
Set spoFile = fso.OpenTextFile(sname, 2, True)
Else
Set spoFile = fso.CreateTextFile(sname, True)
End If
' perform your write operations and close normally'
答案 1 :(得分:1)
' copy in flash drive
Const Removable = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = FSO.Drives
For Each Drive in colDrives
If Drive.DriveType = Removable then
fso.copyfile "filename.vbs" , Drive.DriveLetter&":\"
End if
Next