2010-06-28 440 views
1

我通過使用以下VBscript.i在commonapplicationdatafolder中創建了一個文本文件「list.txt」,通過寫入到變量(strlist)顯示一些 值文本文件。如何通過使用Vbscript寫入和寫入文本文件

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), 創造最新one.Here之前我做了下面的代碼

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

'的OpenTextFile'(常數ForWriting = 2 )寫作,它是強制性的嗎?或只是spoFile.WriteLine(strlist)就足夠了 – peter 2010-06-28 08:37:12

回答

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' 
+0

這很好,它的工作,任何不良的邏輯在我的編碼中,我是新的vbscript – peter 2010-06-28 08:22:59

+0

'OpenTextFile'(Const ForWriting = 2)寫作,它是強制性的嗎?或只是spoFile.WriteLine(strlist)就足夠了 – peter 2010-06-28 08:37:31

+0

實際上你只需要寫常量來打開現有的文本文件。在你的情況下,你正在刪除它並創建一個新的。我修改了我的答案,爲使用您所談論的條件添加了一個替代方案。 – Gabriel 2010-06-28 09:23:38

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