簡體   English   中英

使用VBScript和FileSystemObject對日志文件進行獨占文件訪問

[英]Exclusive File access to logfile with VBScript and FileSystemObject

我有一個當前寫入日志文件的VBS腳本。 這個腳本可以啟動我的多個同時進程,所以現在我擔心並發。

我目前正在使用FileSystemObject打開並寫入此文件。 FSO是否支持獨占文件訪問?

是的,FileSystemObject支持獨占文件訪問。 如果在調用OpenTextFile時另一個進程鎖定了該文件,則會出現錯誤(權限被拒絕錯誤)。 您應該能夠捕獲錯誤並正確處理它(在調用OpenTextFile之后檢查Err.Number <> 0是否可以這樣做)。

我不知道Windows API對您的訪問權限,但您應該查看Windows API中的調試基礎結構。

即使世界上有一個很好的代碼項目的文章在這里基本上使用的OutputDebugString和追趕與DebugView中,或管道輸送到文件將刪除您鎖定日志文件的發行,也將刪除多個腳本的瓶頸排隊寫入日志文件。

希望這可以幫助。

如果可能的話,我建議您關閉句柄並在每次需要寫入文件時重新打開它,以避免可能的獨占文件訪問問題。 例如:

set objFile = objFSO.OpenTextFile("somefile.txt",8,True)
objFSO.WriteLine "jfdskfdkls"
objFSO.Close
'something something
set objFile = objFSO.OpenTextFile("somefile.txt",8,True)
objFSO.WriteLine "gfdgfdgfd"
objFSO.Close
'something else
set objFile = objFSO.OpenTextFile("somefile.txt",8,True)
objFSO.WriteLine "ddsgfgdfsgdfs"
objFSO.Close

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM