Цитата aggressor_:
Можно как-нибудь сделать, чтобы в UTF-8 (без BOM)? »
|
Напрямую — никак. Только отсекать, наподобие:
читать дальше »
Код:

Option Explicit
Const adTypeBinary = 1
Const adTypeText = 2
Const adModeReadWrite = 3
Dim objFSO
Dim objFile
Dim objStreamText
Dim objStreamBinary
Dim strContent
Dim strNewFileName
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objStreamText = WScript.CreateObject("ADODB.Stream")
Set objStreamBinary = WScript.CreateObject("ADODB.Stream")
With objStreamText
.Type = adTypeText
.Mode = adModeReadWrite
.Open
End With
With objStreamBinary
.Type = adTypeBinary
.Mode = adModeReadWrite
.Open
End With
For Each objFile In objFSO.GetFolder("E:\Песочница\0187").Files
With objStreamText
.Charset = "windows-1251"
.LoadFromFile objFile.Path
strContent = .ReadText()
.Position = 0
.SetEOS
.Charset = "utf-8"
.WriteText strContent
.Position = 3
.CopyTo objStreamBinary
.Position = 0
.SetEOS
strNewFileName = objFSO.BuildPath("E:\Песочница\0188", objFile.Name)
If objFSO.FileExists(strNewFileName) Then
objFSO.DeleteFile strNewFileName, True
End If
With objStreamBinary
.SaveToFile strNewFileName
.Position = 0
.SetEOS
End With
End With
Next
objStreamText.Close
objStreamBinary.Close
Set objStreamBinary = Nothing
Set objStreamText = Nothing
Set objFSO = Nothing
WScript.Quit 0
или посредством «Scripting.FileSystemObject» → «TextStream»: читать как ANSI, отрезать первые три символа, записывать.