最初は、こんなもん何でもないなぁと思ってたのですが
いざ、ファイルシステム使ってやってみると文字バケ発生。
どうやらファイルシステムではUTF-8に対応してないらしい。
既にいくつも、紹介されてますが、メモ。
Const adCharSet = "UTF-8"
Const adSaveCreateOverWrite = 2
Const adTypeText = 2
Const adCRLF = -1
Const adReadAll = -1
Dim intMsg
intMsg=MsgBox("実行しますか?",vbYesNo+vbQuestion,"置換")
If intMsg=vbNo Then
WScript.Quit
End If
Dim strReplace,strTarget
Do While strReplace = "" OR strTarget = ""
strReplace=InputBox("置換する文字を入力してください。")
strTarget=InputBox("置換後の文字を入力してください。")
Loop
Dim strAll
strAll = ReadFile("app.config")
'バックアップの作成
Call WriteFile("app.config.backup",strAll)
'置換
strAll = Replace(strAll, strReplace, strTarget)
'書込み
Call WriteFile("app.config",strAll)
WScript.Echo "終了しました。"
Function ReadFile(fileName)
Dim str
Set StreamIn = WScript.CreateObject("ADODB.Stream")
StreamIn.Open
StreamIn.Type = adTypeText
StreamIn.Charset = adCharSet
StreamIn.LoadFromFile(fileName)
StreamIn.LineSeparator = adCRLF
StreamIn.Position = 0
str = StreamIn.ReadText(adReadAll)
StreamIn.Close
ReadFile = str
End Function
Sub WriteFile(fileName, str)
Set StreamOut = WScript.CreateObject("ADODB.Stream")
StreamOut.Open
StreamOut.Type = adTypeText
StreamOut.Charset = adCharSet
StreamOut.LineSeparator = adCRLF
StreamOut.Position = 0
StreamOut.WriteText(str)
StreamOut.SaveToFile (fileName),adSaveCreateOverWrite
StreamOut.Close
End Sub
0 コメント:
コメントを投稿