
こんばんわ
VBSについて質問です。
テキストファイルを開いて、文字列を追加するスクリプトを作成したいのですが、
以下のようなプログラムであれば、行の一番下に文字を追加できると思います。
########ここから
Dim objFS,objText,objFile
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFile = objFS.GetFile("C:\test\vbs\test.txt")
Set objText = objFile.OpenAsTextStream(8,-2)
objText.WriteLine("新しい行")
Set objFILE = Nothing
Set objText = Nothing
############ここまで
しかし今やりたいのは分の途中に文字をいれたい。
たとえばテキストファイルが
A
B
C
D
というファイルだったら、
"B"を検索して、Bの下に”新しい行”という文字列を追加したいです。
いろいろ調べましたがどうもうまくいきません。
わかる方ご教授願います。
No.1ベストアンサー
- 回答日時:
VBScriptで用意されているファイル処理は
読み込み、書き込み、末尾への追加の3種類です
途中の書き換えは準備されていないのでテンポラリーファイルなどを使って希望の処理を行う方向でしょう
Dim objFS,objText,objFile
Dim objTemp, ss, flag
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFile = objFS.GetFile("C:\test\vbs\test.txt")
Set objText = objFile.OpenAsTextStream(1,-2)
Set objTemp = objFS.CreateTextFile("C:\Test\vbs\temp.txt",true)
' 書き換え処理をしたかどうかのフラグ
flag = false
do until objText.AtEndOfStream
ss = objFile.ReadLine
objTemp.WriteLine( ss )
if flag = false then
if ss = "B" then
flag = True
objTemp.WriteLine("新しい行")
end if
end if
loop
objText.Close
objTemp.Close
if flag then
'
ss = objFile.Name
' 元が不要なら Deleteメソッドを使用
objFile.Move( "old_" & ss )
Set objFile = objFS.GetFile("C:\test\vbs\temp.txt")
objFile.Move( ss )
end if
Set objFILE = Nothing
Set objText = Nothing
Set objTemp = Nothing
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
★★★PowerShellのpatternについ...
-
.txtではなく.logの方が良いの...
-
バッチファイルからVBAに引数を...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
拡張子を元に戻す
-
trcからtxtへの変換方法を教えて!
-
CListCtrlに表示している複数フ...
-
テキストファイルで提出とは?
-
PowerShellでのテキスト編集に...
-
XCOPY でファイルかフォルダか...
-
ファイル名の一部をbatで変更し...
-
AccessVBAでのインポート
-
Windows マシンでFTPバッチが動...
-
VBSでフォルダ内のテキストファ...
-
ファイルの最後に文字列挿入
-
テキストファイルクリア .net2...
-
ftpコマンドで複数のファイルを...
-
コマンドプロンプトの「%1」と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
.txtではなく.logの方が良いの...
-
VBAでワークシートを引数として...
-
テキストファイルで提出とは?
-
多数のサブディレクトリ内のフ...
-
psqlでエラーログをとりたい
-
拡張子を元に戻す
-
COPYコマンドで結合すると余計...
-
バッチファイルからVBAに引数を...
-
renameコマンドについて
-
ファイルの最後に文字列挿入
-
3つ以上のテキストファイルをコ...
-
バッチファイルで文字列削除に...
-
VBSでフォルダ内のテキストファ...
-
ftpコマンドで複数のファイルを...
-
ファイル内容の修正、行削除に...
-
★★★PowerShellのpatternについ...
-
コマンドプロンプトで指定した...
-
forfilesで検索したファイルを...
-
バッチファイル 複数ファイル...
おすすめ情報