人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBSの質問です
以下のスクリプトを実行すると
windwos7環境ではエラーが起こらなかったのですが
windows8.1環境で実行すると以下の様なエラーが出てきました
どうすれば治りますでしょうか?

ファイルの最後を超えた入力を行おうとしました

1428944008
●拡大する

●質問者: Izkgkf0CPUsl85gi0dBq
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

質問者から
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"

Izkgkf0CPUsl85gi0dBqさんのコメント
mac由来のカスファイルが原因でした 削除すれば動きました ありがとうございました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ