如何使用Vbscript重写和写入文本文件

时间:2010-06-28 08:09:40

标签: vbscript

我在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)用于写入,如果是这种情况我需要做什么改变,是强制性的吗?

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