• ベストアンサー

テキストファイルより特定の文字を削除する方法

皆様 御世話になっております。 現状、以下の内容のバッチを実行し、dump1.txtのトークン9以後の値をdump2.txtに反映させています。 -------------------------------------------- FOR /F "TOKENS=9,10*" %%A IN (c:\dump1.txt) DO ECHO %%A %%B %%C > c:\dump2.txt -------------------------------------------- dump1.txtからdump2.txtへ引き継がれる値の中で、「\015\n」の文字列のみ不要なので削除したいのですが、このようなことは可能でしょうか? ※「\015\n」は連続した文字列です。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>テキストファイルのフォーマットとはどのようなものでしょうか? スペース区切りで、そういう区切られたものが9コ以上あるとかそういうことなんですが… とりあえずよくわからんけど そういうフォーマットであるとして とりあえず作ってみました。 以下の部分を適当な名前で拡張子vbsで保存して、ダブルクリックで実行してみて下さい。 'スペース区切りのフィールドの9番目以降を出力する '\015\nは削除する Dim fso Dim inFile, outFile Dim field Dim outString Dim i Filename="dump1.txt" '読み込みファイル名の設定 Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set inFile = fso.OpenTextFile("dump1.txt",1)'読み込みファイル Set outFile = fso.OpenTextFile("dump2.txt",2,true)'書き込みファイル Do until inFile.AtEndOfStream field=split(inFile.ReadLine) outString="" for i=8 to UBOUND(field) outString = outString & field(i) & " " next if outString <> "" then outString = left(outString,len(outString)-1) outString = Replace(outString, "\015\n", "") ' \015\nを削除する outFile.WriteLine(outString) Loop outFile.Close inFile.Close

wirednabi
質問者

お礼

BLUEPIXY様: ご回答有難うございます。 ご紹介頂きましたスクリプト実行で見事に 完了しましたm(_ _)m 早々のご回答、本当に有難うございました!

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

VBScriptではダメなのでしょうか? あと、dump1.txtのフォーマットを教えて下さいませんか?

wirednabi
質問者

お礼

BLUEPIXY様: >VBScriptではダメなのでしょうか? VBScriptについての知識が全くないので、 実現可能であるか判断できません。 申し訳ないです。 何か一例を出して頂けると非常に助かるのですが・・・。 >あと、dump1.txtのフォーマットを教えて下さいませんか? テキストファイルのフォーマットとはどのようなものでしょうか?WindowsXPのメモ帳を使用して作成されるものなのですが・・・。

関連するQ&A