【VBScript】ディレクトリ内のファイルを、リストを読み込んで分割
【VBScript】ディレクトリ内のファイルを、リストを読み込んで分割
■プログラム及びファイルに関する備考
.\test\ = 分割を行いたいファイルが格納されたディレクトリ
Dir_FileList.txt = testディレクトリ内のファイルをリスト化したもの。
相対パスにて、1行ずつ改行して記述する。
■やりたい事
Dir_FileList.txtという、.\test\内に配置されたファイルをリスト化したtxtを
1行ずつ読み込み、読みこんだファイルに対し、10行毎に分割処理を行いたいと思っています。
分割したファイルは、分割元のファイルが格納されたディレクトリと同じ、.\test\ディレクトリに作成し、
分割前の元ファイルを最後に削除するという処理をリストに書かれた全てのファイルに対して行いたいです。
下記のようにコーディングをしたのですが、
どうも「Do Until ( fILE1.AtEndOfStream )」のループ文の処理が行われていない?ようで、
testディレクトリ内部のファイルが分割されません。
色々試したのですが、VBScriptを触るのは初めてでなかなか上手くいきませんでした。
どこが間違っていて、どのように修正すれば動くようになるでしょうか?
お手数ですが、ご教授をお願い致します。
----------------------------------------
Option Explicit
Dim flReadFSO, flReadFSO2, fFolder, fILE, flrSubFolder
Set flReadFSO = CreateObject("Scripting.FileSystemObject")
Set flReadFSO2 = WScript.CreateObject("Scripting.FileSystemObject")
Set fFolder = flReadFSO2.GetFolder(".")
Dim name1, fILE1
name1 = fFolder & "\Dir_FileList.txt"
Set fILE1 = flReadFSO.OpenTextFile(name1)
Dim oneLineTxt
oneLineTxt =""
Dim FSO
set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Do Until ( fILE1.AtEndOfStream )
oneLineTxt = fILE1.ReadLine
WScript.Echo oneLineTxt
arg = ".\test\test01.txt"
set fin = FSO.OpenTextFile(arg, 1)
fbn = FSO.GetBaseName(arg)
fen = FSO.GetExtensionName(arg)
nf=0
set fout = FSO.OpenTextFile(".\test\" & fbn & "_" & nf & "." & fen, 2, true)
nl=0
Do While Not fin.AtEndOfStream
fout.WriteLine fin.ReadLine
nl=nl+1
if nl>9 then
fout.Close
nf=nf+1
if nf>9 then exit do
set fout = FSO.OpenTextFile(".\test\" & fbn & "_" & nf & "." & fen, 2, true)
nl=0
end if
Loop
fin.Close
FSO.DeleteFile arg, True
Loop
fILE1.Close
----------------------------------------
お礼
原因がわかりました。 ファイルのパスは絶対パスを記述しなければいけないようです。それで”d:/ファイル名”でうまくいきました。 お騒がせ致しました。