• ベストアンサー

1行がやたら長いテキストをバッチ・コマンドから操る

こんにちは。 batファイル、コマンドプロンプトからファイルを操作するとき、1行がやたらと長いファイルが扱えなくて困っています。 びっしりとタグが書かれたテキストファイルなのですが、このファイルの中の /> を >\n (「\n」は改行)として事前に置き換え処理をすることはできるのでしょうか。改行を入れてやれば、後処理でループするときに楽になるのですが。 もしくは、1行が異常に長くても処理できる方法などあるでしょうか? for /f を使うと正しく反応してくれません。1行でメガ単位あるテキストなんですが・・・

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

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.3

OSの仕様で、コマンドプロンプトの1行における処理文字数に上限があったはずです。 他の言語からXMLファイルを処理するしか無いです。

tuktukrace
質問者

お礼

ありがとうございます。 やはりこんな尋常じゃない長さの1行を処理できませんよね。 WSHでXML整形してから処理をする方向で考えてみます。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

バッチでは無理ですね。 VBScriptだとできるんじゃ無いかな。

tuktukrace
質問者

お礼

ありがとうございます。 ですね。いろいろ組み合わせて乗り切ろうと思います。 参考になりました。

回答No.1

perlがおすすめかなあと思います。 perlの特徴である正規表現、簡単に書ける、インタプリンタ が非常に問題にマッチします。 バッシュと同じくらいの難易度ではないかと思うので、試してみてはいがでしょうか

tuktukrace
質問者

お礼

ありがとうございます。 今回の件に限らず、perlができれば何かと便利ですよね。 10年以上前に、見よう見まねで掲示板スクリプトをいじったのが最初で最後でしたが、今年の年末あたりにperlを勉強しようと思います。 今回の件については、外部のプログラムに整形してもらってから処理に入るかたちにしようと思います。

関連するQ&A

  • バッチでテキストファイルから任意の行のみ取得したい

    batファイルを作成していて、 txtから特定の行のみをとりだし、変数に入れたいです。 どうもよくわからないので質問したいと思います。 まず以下の様なテキストファイルがあります。 ------------------- 111 222 333 ------------------- 実際の値、行数は違いますが、こんな感じに文字列が複数行並んでいます。 行いたい動作は、 ----------------------------------------- 1.テキストファイルの1行目を変数Textに入れる(set Text=111) 2.変数Textを使用し色々処理をする 3.テキストファイルの2行目を変数Textに入れる(set Text=222) 4.変数Textを使用し色々処理をする ----------------------------------------- コレを繰り返します。 2と4は同じ動作ですので、行数のカウンタを設定しループさせる予定です。 n行目を全て取り出す方法がわかれば行けると思うのですが、 どうも見つかりません。ご存知の方がいればお教え願いたいと思います。

  • コマンドプロンプトのバッチについて

    test01.bat >> YYMMDD結果.txt コマンドプロンプトのバッチ処理を実行結果をテキストで保存したいのですが、ファイル名を、 「YYMMDD結果.txt」と"YYMMDD"に本日の日にちを入れたいのですが、どのようにすればよいのでしょうか?

  • コマンドプロンプト(バッチ)で一定間隔にデータ抽出

    WindowsXPのコマンドプロンプト(バッチ)でテキストファイル(改行あり)から100行間隔でデータを抽出する方法を教えてください。 300行ある場合、1行目、101行目、201行目を抽出したいです。宜しくお願いします。

  • テキストファイル(CSV)の3行目以降を削除バッチ

    数百あるテキストファイル(CSVファイル)に対し、 コマンドプロンプトでバッチ処理をして 3行目以降のデータをすべて削除したいです。 ネット検索しても探しだせず、どなたかお詳しい方、ご教授願います。 初心者なので、コマンドや専門的な用語等わかりませんが、 コピペして使えるような例文があるとありがたいです。 ※対象ファイルは指定のフォルダに集められた状態です ※上書きでも、別フォルダに新規ファイルができてもどちらでも大丈夫です ※それぞれのファイルで3行目以降の行数はことなります。

  • コマンドプロンプトで変数にテキストファイル

    コマンドプロンプトで変数にテキストファイルの中身を代入することできますか? 例えば、テキストファイルに検索キーのみが記入してあったとして、それをBATファイルで読み込んで各ドライブから検索するとか。

  • 二つのテキストファイルを行単位で交互に一つに

    10000行のテキストファイルが二つあります。 二つのテキストファイルの内容を行単位で交互に結合させて一つのテキストファイルにまとめたいのですが 例えると下記のようにしたいです。 二つのテキストファイルA.txtとB.txtがあるとします。 ---------------------------------------------- A.txt ああああああああああああああ ささささささささささささささささ ななななななななななななななな ------------------------------------------------ ------------------------------------------------ B.txt かかかかかかかかかかかかかか たたたたたたたたたたたたたた はははははははははははははは ----------------------------------------------- A.txtとB.txtの内容を行単位で交互に一つのテキストファイルとしてC.txtのように保存したいです。 ----------------------------------------------- C.txt ああああああああああああああ かかかかかかかかかかかかかか ささささささささささささささささ たたたたたたたたたたたたたた ななななななななななななななな はははははははははははははは ---------------------------------------------- 検索して調べてみたのですが Pasteコマンドで実現させる方法を試してみたのですが うまくいかず、もしかしたらWindowsにもともと備わっていない機能なのではないかと思い検索したらbusybox64.exeを ダウンロードしてインストールしようと思いましたが コマンドプロンプトにbusybox64.exe --installを 入力してみますとうまく生きました。 busyboxを使わずに行単位で交互にテキストファイルを結合させる方法も知りたいです。 よろしくお願い致します。 返答をお待ちしております。

  • コマンドにてテキストファイルに文字列の追加

    指定フォルダ内にある全てのテキストファイル(*.txt)の文末に 改行コードをいれたいです。 Windows標準のコマンドプロンプトまたはbatファイルでの実行が条件です。 テキストファイルの数および名称は不特定で、拡張子は「.txt」で固定です。 環境は2Kproですが、XP環境の事例でもOKです。 ご教授宜しくお願いします。

  • コマンドプロンプト画面の記録

    コマンドプロンプトで行われた事項をテキストファイルに残す方法を教えてください。 普通はコマンドプロンプト画面で実行された命令等は処理が終了後に画面が消えてエラーが出たのか?などが確認できません。 どんなことが行われたのか? コマンドプロンプト画面に表示された事項をテキストファイルに残したいのです。 (エラーや不具合が出ていれば、テキストで確認できる。) batファイルで処理コマンドを記載する前にテキストとして残すためのコマンドを書き込めばできそうですが DOSの記憶もはるか昔に無くしてしまっています。 希望の処理が出来ると思いますが、駄目な場合は他の方法でも出来る場合は含めて教えて下さい。 OS: windows 10 (PRO) x64

  • コマンドプロンプトのバッチファイルでテキストファイル内の文字列を抜き出したい

    コマンドプロンプトのバッチファイルでテキストファイル内の文字列から何文字か抜き出すにはどうすればよいですか? たとえば,abcde****** のようにその行の最後から6文字目までとか。

  • コマンドプロンプトで行が見えなくなる

    コマンドプロンプトにバッチでファイル情報を一行ずつ出力します。 行が非常に多いため、始めのほうに出力された行が、上スクロールバーをあげても見えなくなります。 このような場合どうすればよいでしょうか。 すべての文字を残すまたは、テキストファイルに出力するなどできないでしょうか。

専門家に質問してみよう