合并文本的腳本可以這么寫:
復制代碼 代碼如下:
Sub AppendTextFile(filename)
Set objTextFile = objFSO.OpenTextFile(filename, ForReading, true, -2)
Do Until objTextFile.AtEndOfStream
objOutFile.WriteLine(objTextFile.Readline)
Loop
End Sub
可是如果所讀取的文件是UTF-8格式的,那么文件開頭的三個字節的標識符會被腳本認為是數據,這樣這個標識符就變成了合并后文件里的亂碼。
FSO是提供了打開Unicode文件的參數的,可惜這里并不生效。
TristateUseDefault |
-2 |
Opens the file using the system default. |
TristateTrue |
-1 |
Opens the file as Unicode. |
TristateFalse |
0 |
Opens the file as ASCII. |
請教了Google大師,發現有人說用OpenAsTextStream是可以的,可惜在我的環境里還是不成功。
另外一個想法是讀入文件的時候,自行判斷文件開始三個字節是否標識符,這也被判斷是不可行的方法,因為FSO提供的Read是按字符進行讀取,這樣,在有中文的環境里,我們不可能正好讀出這三個字節。
類似的問題在IIS6里面被微軟確認,好像也有一個對應的補丁出來,但是對于批處理文件的情況,似乎還是沒有修改過來。
最后,MSDN幫了很大的忙,但是它的地址很不好找,記錄一下:
http://msdn.microsoft.com/en-us/library/ms950396.aspx