vbsはunicodeとasciiコード変換を実現します。
WiToAnsi.vbsファイル:
' Utility to rewrite a Unicode text file as an ANSI text file
' For use with Windows Scripting Host, CScript.exe or WScript.exe
' Copyright (c) 1999, Microsoft Corporation
'
Option Explicit
' FileSystemObject.CreateTextFile and FileSystemObject.OpenTextFile
Const OpenAsASCII = 0
Const OpenAsUnicode = -1
' FileSystemObject.CreateTextFile
Const OverwriteIfExist = -1
Const FailIfExist = 0
' FileSystemObject.OpenTextFile
Const OpenAsDefault = -2
Const CreateIfNotExist = -1
Const FailIfNotExist = 0
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
Dim argCount:argCount = Wscript.Arguments.Count
If argCount > 0 Then If InStr(1, Wscript.Arguments(0), "?", vbTextCompare) > 0 Then argCount = 0
If (argCount = 0) Then
Wscript.Echo "Utility to copy Unicode text file to an ANSI text file." &_
vbNewLine & "The 1st argument is the Unicode text file to read" &_
vbNewLine & "The 2nd argument is the ANSI text file to write" &_
vbNewLine & "If the 2nd argument is omitted, the Unicode file will be replaced"
Wscript.Quit 1
End If
Dim inFile, outFile, inStream, outStream, inLine, FileSys, WshShell
If argCount > 1 Then
outFile = Wscript.Arguments(1)
inFile = Wscript.Arguments(0)
Else
outFile = Wscript.Arguments(0)
inFile = outFile & ".tmp"
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Run "cmd.exe /c copy " & outFile & " " & inFile, 0, True
End If
Set FileSys = CreateObject("Scripting.FileSystemObject")
Set inStream = FileSys.OpenTextFile(inFile, ForReading, FailIfNotExist, OpenAsDefault)
Set outStream = FileSys.CreateTextFile(outFile, OverwriteIfExist, OpenAsASCII)
Do
inLine = inStream.ReadLine
outStream.WriteLine inLine
Loop Until inStream.AtEndOfStream
inStream.Close
outStream.Close
If argCount = 1 Then WshShell.Run "cmd.exe /c del " & inFile, 0
バッチ処理で呼び出し:
cscript WiToAnsi.vbs [path to Unicode file][path to ANSI file]
二、Copy a ANSI File to an Unicoode FileOpenTextFileとCreateTextFileの開き方を調整すればいいです。
三、参考
http://msdn.microsoft.com/en-us/library/aa368046%28VS.85%29.aspx
四、OpenTextFileとCreateText Fileの使用
CreateText File方法
指定されたファイルを作成してTextStreamオブジェクトに戻り、作成されたファイルを読み書きするために使用できます。
object.CreateTextFile(filename[, overwrite[, unicode]])
パラメータobject
必ず選択します。FileSystemObjectまたはFolderオブジェクトの名前であるべきです。
filename
必ず選択します。作成するファイルを指定する文字列表式。
overwrite
オプションを選択します。Boolean値は既存のファイルを上書きできるかどうかを指定します。ファイルを上書きできる場合、この値はTrueです。ファイルを上書きできない場合、この値はFalseです。この値を省略すると既存のファイルを上書きできません。
unicode
オプションを選択します。Boolean値は、UnicodeまたはASCIIファイル形式でファイルを作成するかどうかを指定します。Unicodeファイル形式でファイルを作成すると、その値はTrueです。ASCIIファイル形式でファイルを作成すると、その値はFalseです。この部分を省略すると、ASCIIファイルが作成されると仮定します。
OpenTextFile方法
指定されたファイルを開いてTextStreamオブジェクトに戻り、このオブジェクトを読み込み、書き込み、またはファイルに追加できます。
object.OpenTextFile(filename[, iomode[, create[, format]]])
パラメータobject
必ず選択します。FileSystemObjectオブジェクトの名前です。
filename
必ず選択します。文字列表式で、開くファイル名を指定します。
iomode
オプションを選択します。入出力モードは、次の3つの定数の一つです。ForReading、ForWriting、またはForApppending。
create
オプションを選択します。Boolean値は、指定されたfilenameが存在しない場合に新しいファイルを作成できるかどうかを示します。新しいファイルの作成を許可する場合はTrueです。そうでなければFalseです。デフォルトの値はFalseです。
フォーマット
オプションを選択します。三つのTristateの値の一つは、どのようなフォーマットでファイルを開くかを示しています。このパラメータを無視すると、ファイルはASCII形式で開きます。
設定
iomodeパラメータは以下のいずれかに設定できます。
数をかぞえる
値
説明
ForReading
1
読み取り専用モードでファイルを開きます。この文書に対して書き込み操作ができません。
ForWriting
2
ファイルを書き込みだけで開きます。このファイルを読んではいけません。
ForApppending
8
ファイルを開き、ファイルの最後に書き込みを行います。
フォーマットパラメータは下記の設定の一つです。
定数
値
説明
TristateUseDefault
-2
システムのデフォルトのフォーマットでファイルを開きます。
TristateTrue
-1
Unicode形式でファイルを開きます。
TristateFalse
0
ASCII形式でファイルを開きます。