Option Explicit Const TARGET_FOLDER = "." Dim REPLACE_FROM Set REPLACE_FROM = New RegExp REPLACE_FROM.Pattern = "^<td>.*\n</tr>" REPLACE_FROM.Global = True REPLACE_FROM.Multiline = True Const REPLACE_TO = "</tr>" Const ForReading = 1 '読み込み Const ForWriting = 2 '書きこみ(上書きモード) Const ForAppending = 8 '書きこみ(追記モード) Dim objFSO, objFolder, objFile, objSubFolder, objTXT Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(TARGET_FOLDER) For Each objFile In objFolder.Files Dim strFilePath, infile, outfile, strData strFilePath = objFSO.BuildPath(TARGET_FOLDER, objFile.Name) Set infile = objFSO.OpenTextFile(strFilePath,ForReading) strData = infile.ReadAll infile.Close Set infile = Nothing Set outfile = objFSO.OpenTextFile(strFilePath,ForWriting) outfile.Write REPLACE_FROM.Replace(strData, REPLACE_TO) outfile.Close Set outfile = Nothing Next dim WSHShell Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.Run "6.vbs"
▽1
●
gizmo5 ●500ポイント ベストアンサー |
環境が変わってから、空のファイルがあるのではないでしょうか。
以下のようにスクリプトを変更して試してみてください。
Option Explicit Const TARGET_FOLDER = "." Dim REPLACE_FROM Set REPLACE_FROM = New RegExp REPLACE_FROM.Pattern = "^<td>.*\n</tr>" REPLACE_FROM.Global = True REPLACE_FROM.Multiline = True Const REPLACE_TO = "</tr>" Const ForReading = 1 '読み込み Const ForWriting = 2 '書きこみ(上書きモード) Const ForAppending = 8 '書きこみ(追記モード) Dim objFSO, objFolder, objFile, objSubFolder, objTXT Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(TARGET_FOLDER) For Each objFile In objFolder.Files Dim strFilePath, infile, outfile, strData strFilePath = objFSO.BuildPath(TARGET_FOLDER, objFile.Name) Set infile = objFSO.OpenTextFile(strFilePath,ForReading) If infile.AtEndOfStream Then infile.Close Else strData = infile.ReadAll infile.Close Set infile = Nothing Set outfile = objFSO.OpenTextFile(strFilePath,ForWriting) outfile.Write REPLACE_FROM.Replace(strData, REPLACE_TO) outfile.Close Set outfile = Nothing End If Next dim WSHShell Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.Run "6.vbs"