とりあえず動くVBScriptを作成しました。
テキストの置換だけならテキストエディタの置換機能でできますが、
毎回同じ置換をするときに用意したり、今回のスクリプト以外にも条件を追加して使ったりします。
サンプル用には”壁(かべ)”と”璧(へき)”が混ざったテキストを”壁(かべ)”にするスクリプトにしました。
入力ファイル
壁壁壁壁壁壁壁壁壁壁
壁壁璧壁壁壁壁壁壁壁
壁壁壁壁壁壁壁璧壁壁
壁壁璧壁壁壁壁壁璧壁
壁壁壁壁壁壁壁壁壁壁
壁壁壁壁壁壁壁壁壁壁
壁壁壁壁壁壁壁壁壁壁
壁壁壁壁壁璧壁壁壁壁
壁璧壁壁壁壁壁壁壁壁
壁壁壁壁壁壁壁壁璧壁
↓このように文字が混ざっています。
スクリプト本体
Option Explicit
On Error Resume Next
' ==============================
' 変数
' ==============================
Dim objWshShell 'WshShellオブジェクト
Dim objFileSys 'ファイルシステムオブジェクト
Dim objParam
Dim strFileName
Dim objFileInput
Dim strOutput
Dim strLine
' ==============================
' 定数
' ==============================
Const ForReading = 1, ForWriting = 2, ForAppending = 8
' ==============================
' 処理
' ==============================
set objWshShell = WScript.CreateObject("WScript.Shell")
'引数チェック
set objParam = WScript.Arguments
If objParam.Count <> 1 Then
objWshShell.Echo "コマンドライン引数がありません。"
objWshShell.Quit
End If
strFileName = objParam(0)
'ファイル名が入力されなかったら終了
If strFileName = "" Then
objWshShell.Quit
End If
'ファイルシステムオブジェクト
Set objFileSys = WScript.CreateObject("Scripting.FileSystemObject")
'ファイル読み込み
Set objFileInput = objFileSys.OpenTextFile(strFileName, ForReading)
If objFileSys.FileExists(strFileName) then
Do While objFileInput.AtEndOfStream <> True
strLine = objFileInput.ReadLine
' -----------
' 加工処理
' -----------
If InStr(strLine,"璧") > 0 then
strLine = Replace(strLine,"璧","壁")
End If
strOutput = strOutput & strLine & vbCrLf
Loop
objFileInput.Close
Set objFileInput = objFileSys.OpenTextFile(strFileName, ForWriting)
If Err.Number = 0 Then
objFileInput.Write(strOutput)
objFileInput.Close
Else
End If
Else
objWshShell.Echo "ファイルがありません。"
objFileInput.Close
End If
入力ファイルをドラッグアンドドロップで使用します。
入力したファイルを変更するので、置換前のファイルが必要な場合はコピーしておきます。
「’ 加工処理」の部分を必要に応じてカスタマイズすることが多いです。
VBScript関連書籍の選び方
ネット検索で十分だと思いますが、書籍で勉強する場合はサンプルが載っていたり、
逆引きができる本がおすすめです。
[改訂版] VBScriptポケットリファレンス (POCKET REFERENCE) 新品価格 |