こんばんわ
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) FileSearch2007に変わる構文について 1 2022/12/16 16:57
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) VBAの繰り返し処理表記と複数の処置条件について 1 2023/01/23 20:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBSで指定行に挿入
その他(プログラミング・Web制作)
-
VBscriptからバッチに変数を渡すには?
その他(プログラミング・Web制作)
-
VBSで特定の文字列が含まれる場合の処理方法
その他(プログラミング・Web制作)
-
-
4
VBScriptでCSVファイルを読み出したい
その他(プログラミング・Web制作)
-
5
VBScriptで、ファイルから任意の行のみ取り出す方法について
その他(プログラミング・Web制作)
-
6
VBScript(vbs)での行の取得について
その他(プログラミング・Web制作)
-
7
VBSから別のVBS起動するとき変数を渡したい
Visual Basic(VBA)
-
8
[VBS] テキストファイルから任意の値を抽出する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
拡張子を元に戻す
-
.txtではなく.logの方が良いの...
-
ファイルの最後に文字列挿入
-
多数のサブディレクトリ内のフ...
-
テキストファイルで提出とは?
-
COPYコマンドで結合すると余計...
-
bat(バッチ)ファイルで文字入...
-
ファイルを処理中に次の処理に...
-
コマンドプロンプトで指定した...
-
UWSCでテキストファイルを開い...
-
3つ以上のテキストファイルをコ...
-
バッチファイル 複数ファイル...
-
VBScriptでtxtファイルの中身を...
-
Windowsのバッチファイルを利用...
-
テキストの保存
-
renameコマンドについて
-
ファイル世代管理バックアップ...
-
Windows版のgzipについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
拡張子を元に戻す
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
.txtではなく.logの方が良いの...
-
txtのファイルから編集してもい...
-
バッチファイルで文字列削除に...
-
Windowsのバッチファイルを利用...
-
バッチファイル 複数ファイル...
-
ファイルの最後に文字列挿入
-
テキストファイルのファイル名...
-
psqlでエラーログをとりたい
-
forfilesで検索したファイルを...
-
renameコマンドについて
-
accessでSQL文を使ってcsvファ...
-
コマンドプロンプトでスペース...
-
ファイルを処理中に次の処理に...
-
UWSCでテキストファイルを開い...
-
バッチファイルからVBAに引数を...
おすすめ情報