テキストファイルの1行目を読み込み(変数格納)、読み終わったら1行目は削除してテキストファイルを上書き保存してください。
以下は処理前のテキストイメージ
====テキストの内容ここから=====
ほげほげ(1行目)
ぬるぽ(2行目)
ガッ(3行目)
====テキストの内容ここまで=====
以下は処理実行後のテキストイメージ
====テキストの内容ここから=====
ぬるぽ(2行目)
ガッ(3行目)
====テキストの内容ここまで=====
ファイルの先頭行を削除するだけで良いのでしょうか?
以下、サンプルです。ファイル名を引数で渡すようにしてみました。
Option Explicit ' File Name : RemoveTopLine.vbs ' Usage : CScript RemoveTopLine.vbs /I:<Input File> [/O:<Output File>] ' Example : CScript RemoveTopLine.vbs /I:hoge.txt Const ForReading = 1 Const ForWriting = 2 Call Main() Sub Main() ' 入力パラメータのチェック If Not CheckParam( WScript.Arguments ) Then Call ShowHelp() Exit Sub End If ' 入力ファイル名、出力ファイル名を取得 Dim strInFile strInFile = GetParamByName( WScript.Arguments, "I", "" ) Dim strOutFile strOutFile = GetParamByName( WScript.Arguments, "O", strInFile ) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") Dim inFile Set inFile = fso.OpenTextFile( strInFile, ForReading ) ' ファイルの内容を変数にすべて読み込み Dim strContents strContents = inFile.ReadAll inFile.Close ' ファイルの内容を配列に変換 Dim arrLines arrLines = Split( strContents, vbCrLf ) Dim outFile Set outFile = fso.OpenTextFile( strOutFile, ForWriting, True ) ' 1行目を飛ばして出力ファイルに書き込み Dim i For i = 1 to UBound(arrLines) outFile.WriteLine arrLines(i) ' 指定行(i)を取得して書き込み Next outFile.Close End Sub Function CheckParam( objArgs ) Dim bResult bResult = True If Not objArgs.Named.Exists("I") Then bResult = False End If CheckParam = bResult End Function Sub ShowHelp() WScript.Echo "Usage : CScript RemoveTopLine.vbs /I:<Input File> [/O:<Output File>]" End Sub Function GetParamByName( objArgs, strName, strDefaultValue ) Dim strResult If objArgs.Named.Exists( strName ) Then strResult = objArgs.Named.Item( strName ) Else strResult = strDefaultValue End If GetParamByName = strResult End Function
■ Hey, Scripting Guy! テキスト ファイルの最終行だけを削除する方法はありますか http://www.microsoft.com/japan/technet/scriptcenter/resources/qa... ■ Hey, Scripting Guy! テキスト ファイルのすべての空白行を削除する方法はありますか http://www.microsoft.com/japan/technet/scriptcenter/resources/qa...
GOODです!
素敵です!
サブルーチンになってて最高です!