前提・実現したいこと
vbsで複数のphpファイルの内容を一括で、そのファイル自身の名前に変更するプログラムを作りたいです。
以下のようなコードを作成しましたが、
発生している問題・エラーメッセージ
「ファイルの最後を超えた入力を行おうとしました。」って出たので0バイトのファイルを消し、そしたら「プロシージャの呼び出し、または因数が不正です。」って出て、それでも実行すると0バイトのファイルが増える(ファイルの中身が消えていく)エラーが発生中です
該当のソースコード
vbs
1Option Explicit '変数の宣言を省略させないためのものです。 2 3Const TARGET_FOLDER = "d:..." '※フォルダを指定 4Const REPLACE_FROM = "so" '※置換前文字列 5Dim REPLACE_TO ' 置換後文字列 6 7Const ForReading = 1 '読み込み 8Const ForWriting = 2 '書きこみ(上書きモード) 9Const ForAppending = 8 '書きこみ(追記モード) 10 11Dim strFilePath, infile, outfile, strData, strExt '変数を宣言 12Dim objFSO, objFolder, objFile, objSubFolder, objTXT '変数を宣言 13Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") 'ドライブ・フォルダ・ファイルなどを操作できるオブジェクトです。 14Set objFolder = objFSO.GetFolder(TARGET_FOLDER) 15 16For Each objFile In objFolder.Files 17 strFilePath = objFSO.BuildPath(TARGET_FOLDER, objFile.Name) 18 strExt = objFSO.GetExtensionName(objFile.Name) 19 20 If objFile.Size > 0 And LCase(strExt) = "php" Then 21 Set infile = objFSO.OpenTextFile(strFilePath,ForReading) 22 strData = infile.ReadAll 23 infile.Close 24 Set infile = Nothing 25 Set outfile = objFSO.OpenTextFile(strFilePath,ForWriting) '(上書き) 26 REPLACE_TO = objFile.Name '※自身のファイル名 27 outfile.Write Replace(strData,REPLACE_FROM,REPLACE_TO) 28 outfile.Close 29 Set outfile = Nothing 30 End If 31Next 32 33Set objFolder = Nothing 34Set objFSO = Nothing 35 36MsgBox "終了", vbInformation
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/05 10:33
2021/03/05 10:38
2021/03/05 10:48
2021/03/06 10:04
2021/03/06 10:24
2021/03/08 10:14