文字列置換スクリプト †複数のテキストファイルで特定の文字列を置換する、最もシンプルですが、使いどころの多いツールです。 関連ページ †なし ファイル名: replace.vbs Option Explicit ' ソースを厳格にチェック '
Dim obj_file ' クラス実体化のため '
Set obj_file = New cl_file ' クラス実体化 '
' '
Call obj_file.Execute( ".\" ) ' 処理開始 '
Set obj_file = Nothing ' リソース解放 '
' '
Class cl_file ' ファイル操作クラス '
public Sub Execute( ByVal vd_folderPath ) ' 開始処理 '
Dim fso, IDIR ' 変数 '
Set fso = CreateObject( "Scripting.FileSystemObject" ) ' FileSystemObject生成 '
Set IDIR = fso.GetFolder( vd_folderPath ) ' フォルダ名取得 '
Call replace_M( IDIR ) ' 置換処理開始 '
Set IDIR = Nothing ' リソース解放 '
End Sub ' 処理終了 '
' '
private Sub replace_M( ByRef IDIR ) ' 置換処理 '
Dim str1, str2, bufStr, fso, IOFO, folderName, filePath, fileName, rtnCod ' 変数 '
str1 = "test" ' 置換対象文字列 '
str2 = "TEST" ' 置換後文字列 '
Set fso = CreateObject( "Scripting.FileSystemObject" ) ' FileSystemObject生成 '
rtnCod = 1 ' 内部処理判定用 '
For Each filePath In IDIR.Files ' すべてのファイルについて '
fileName = fso.GetFileName( filePath ) ' ファイル名取得 '
rtnCod = StrComp( "replace.vbs", fileName ) ' 自分自身か '
If 0 = rtnCod then ' 自分自身なら '
rtnCod = 1 ' 内部処理判定を設定 '
Else ' 自分自身でないなら '
Set IOFO = fso.OpenTextFile( filePath, 1 ) ' ファイルを開く '
bufStr = IOFO.readAll ' ファイルの内容をすべて読込む '
IOFO.Close ' ファイルを閉じる '
Set IOFO = Nothing ' リソース解放 '
bufStr = Replace( bufStr, str1, str2 ) ' 置換実行 '
Set IOFO = fso.OpenTextFile( filePath, 2 ) ' ファイルを開く '
IOFO.write( bufStr ) ' 置換後ファイル出力 '
IOFO.Close ' ファイルを閉じる '
Set IOFO = Nothing ' リソース解放 '
End If ' '
Next ' '
' '
For Each folderName In IDIR.SubFolders ' サブフォルダについて '
Call replace_M( folderName ) ' 再帰置換依頼 '
Next ' '
' '
Set fso = Nothing ' リソース解放 '
' '
End Sub ' 処理終了 '
End Class ' '
参考ページ † |