こんばんわ
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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBSで指定行に挿入
その他(プログラミング・Web制作)
-
VBscriptからバッチに変数を渡すには?
その他(プログラミング・Web制作)
-
VBScriptで、ファイルから任意の行のみ取り出す方法について
その他(プログラミング・Web制作)
-
-
4
VBscriptが起動しない?
Microsoft ASP
-
5
VBSでフォルダ内のテキストファイルを全て連結するには?
その他(プログラミング・Web制作)
-
6
vbsからバッチファイル実行時の引数渡しについて
Visual Basic(VBA)
-
7
VBSで特定の文字列が含まれる場合の処理方法
その他(プログラミング・Web制作)
-
8
vbsでテキストファイル内の文字列検索
Visual Basic(VBA)
-
9
VBScriptでCSVファイルを読み出したい
その他(プログラミング・Web制作)
-
10
[VBScript]ファイルの入出力を同時に行う方法
Visual Basic(VBA)
-
11
[VBS] テキストファイルから任意の値を抽出する
Visual Basic(VBA)
-
12
VBSから別のVBS起動するとき変数を渡したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
.txtではなく.logの方が良いの...
-
拡張子を元に戻す
-
テキストファイルで提出とは?
-
ファイルの最後に文字列挿入
-
COPYコマンドで結合すると余計...
-
cshでファイルサイズ取得
-
VBAでエクセルをtxtに変換する...
-
Windowsのバッチファイルを利用...
-
psqlでエラーログをとりたい
-
VBAで困ってます
-
任意のディレクトリ以下に存在...
-
ロケールSJISではmakefileの一...
-
ファイル内容の修正、行削除に...
-
バッチファイルで文字列削除に...
-
ADODB.Streamで開いたファイル...
-
データバインド機能について
-
MFCの静的リンクと再頒布条件
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
.txtではなく.logの方が良いの...
-
拡張子を元に戻す
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
forfilesで検索したファイルを...
-
テキストファイルのファイル名...
-
テキストファイルで提出とは?
-
ファイルの最後に文字列挿入
-
バッチファイル 複数ファイル...
-
Windowsのバッチファイルを利用...
-
バッチファイルからVBAに引数を...
-
psqlでエラーログをとりたい
-
renameコマンドについて
-
VBAでエクセルをtxtに変換する...
-
バッチファイルで文字列削除に...
-
cshでファイルサイズ取得
-
テキスト(txt)→ワード(docx)へ...
-
ファイル内容の修正、行削除に...
おすすめ情報