• 締切済み

VBScriptでファイルの中身のある行を抽出したい。

ファイル内のあるキーワードからあるキーワードまでにある行だけを出力するプログラムを作りたいのですが、何かいい方法はないでしょうか?自動化したいのでbatファイルもしくはVBScriptでご教授いただければと思います。すみませんが、どなたか知恵をお貸し頂ければと思います。。。 <ファイルの中身> "------------------" ←キーワード 001E7AC31A6A,Houjineigyou,ON 001E7A25517D,Houjineigyou,ON 001E7AC31C63,Shisankanri1,ON 対象は、        ←キーワード <出力例> 001E7AC31A6A,Houjineigyou,ON 001E7A25517D,Houjineigyou,ON 001E7AC31C63,Shisankanri1,ON

みんなの回答

  • iriyak
  • ベストアンサー率48% (40/82)
回答No.2

VBScript と JScript でのプログラミング例です。 ■Launch.bat cscript.exe //nologo Extract.wsf input.txt & pause ■Extract.wsf <package> <job> <script language='JavaScript'> function Extract(filepath) {   var FileSystemObject = new ActiveXObject('Scripting.FileSystemObject');   var readStream = FileSystemObject.openTextFile(filepath);   var datap = false;   while (!readStream.atEndOfStream) {     var s = readStream.readLine();     if (/^"(\-)+"/.test(s)) {       datap = true;       continue;     }     if (/^対象は、/.test(s)) {       datap = false;       continue;     }     if (datap)       WScript.echo(s);   } } </script> <script language='VBScript'> Extract(WScript.Arguments.Item(0)) </script> </job> </package>

全文を見る
すると、全ての回答が全文表示されます。
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

VBSでファイル入出力することはできますか? できるなら悩むことも無いとおもいますが…

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ksh 複数のファイルから中身を1行ずつ取り出して別のファイルに出力したい

    いつもお世話になっております。 kshについての質問なのですが、どうかよろしくお願い致します。 (1)複数のselect文の結果をそれぞれ別のファイルに出力する。(ファイルa,b,c・・・) (2)a,b,c…それぞれのファイルから1行ずつ別のファイル(ファイルd)に出力する。 例:ファイルaの中身   (a1111   a2222   a3333)   ファイルbの中身   (b1111   b2222   b3333)   ファイルcの中身   (c1111   c2222   c3333) 結果ファイル(ファイルd)の中身 a1111 b1111 c1111 a2222 b2222 c2222 ・ ・ ・ 上記のような方法が可能でしょうか?

  • VBScriptでDIFF作成

    お世話になります 仕事で、VBScriptのコードでUNIXのdiffのようなものが必要なのですが。 といっても、100%同じでなくて構いません。作成できる方お願いします。 (なぜ、cygwinのdiff.exeを使わないの?という質問は無しでお願いします。) 例として、下記のような2つのテキストファイルから結果のようなものを出したいのです。 ファイル1  ファイル2      結果 A1      A1            < B1 B1      A2            > A2 C1      C1            > D2 D1      D2            < D2 D2      D1            > D3 E1      D3             < R1 R1      E1            > K1 R2      K1            < R2         R1 ファイル1とファイル2を交互に上からチェックする仕組みで考えています ファイル1の1行目のA1 と ファイル2の1行目のA1は同じだから表示しません ファイル1の2行目のB1 と同じものはファイル2の2行目以降にないので、< B1 と表示 ファイル2の2行目のA2 と同じものはファイル1の2行目以降にないので、> A2 と表示 ファイル1の3行目のA1 と ファイル2の3行目のC1は同じだから表示しません ファイル1の4行目のD1と同じものはファイル2の5行目なので、その間の行を表示 > D2 と表示 ファイル1は5行目のD2はファイル2の6行目以降にないので < D2 と表示 : Funcion VBS_Diff( Filename1 , Filename2 ) : VBS_Diff=(diffの結果文字列) End Function お手数ですが、挑戦できる方お願いします。

  • エクセルでファイルを開かずに文字を検索し、行を抽出したい

    ひとつのフォルダの中にファイルが複数あります。これらのファイルを開かずに文字列を検索し、検索対象の文字がある行をまどめてひとつのファイルに抽出したいです。 例:Aフォルダ内にファイル1、ファイル2、ファイル3、、、と複数のファイルがある。ファイルのフォーマットはすべて同じでデータのみが異なる。ファイルにはシートは一つのみ。 ファイルのイメージは      A    B    C     D  1行目 名称   価格   味    評価 ←全ファイル共通 2行目 いちご  100円  おいしい   A 3行目 りんご  200円  まずい    C ・ ・ ・ これらのファイルから、例えば「いちご」という文字が含まれているセルがある行を抽出して一覧を作りたいです。 もし可能であれば、検索条件として、 一行に 「いちご」かつ「A」を含む や「いちご」または「おいしい」を含む など の絞込みができる機能があれば助かります。 マクロは初心者のため、自分でこのようなものを作ることができません。どうぞお知恵をおかしください。よろしくお願いいたします。

  • 2行読み込んで一行戻り、また2行読み込む

    2行読み込んで一行戻り、また2行読み込む はじめまして、現在、「2行読み込み、一行戻り、また2行読み込む」処理のものを作成しています。 具体的には、 A B C D E と5行に渡り記述されたファイルを上記の旨で表示させる場合、 A B B C C D D E としたいのですが、 filename = ARGV[0] ABCDE = [] file = open(filename) while f = file.gets do  f.chomp!   g = file.gets   g.chomp!  p f  p g end file.close とすると出力は "A" "B" "C" "D" abcde.rb:9: private method `chomp!' called for nil:NilClass (NoMethodError) もちろん2行読み込んで、そのまま次の2行を読み込む記述のため上記のようになってしまいます。 まとめますと、 「一行戻るための記述がわからないので、それを実現するための記述を教えてほしい」 ということです。 rewindを使うと先頭まで戻ってしまうのでどうしたらいいのかさっぱりです。 わかりづらくて非常に申し訳ない、初歩的であろう質問ですがよろしくお願いします。 rubyは1.8.6を使っています。

    • ベストアンサー
    • Ruby
  • リストファイルと一致する行の抽出

    2つのファイルがありまして、list.txtでリストアップしたキーワードに一致するinput.txt一行目の行を抽出したいです. fgrep -f list.txt input.txt ではout of memoryで行えません。 他に何かいい方法がありませんでしょうか? あれば教えていただきたいです。 list.txtはsortせずにこの順序を維持したいです。 <list.txt> d c a h g x k . . <input.txt> a 12 43 .. b 29 44 .. c 12 66 .. c 33 55 .. d 44 55 ..

  • vbscriptによる条件分岐とファイル出力

    vbscript初心者です。ご教授頂けますと幸いです。 ネットワーク監視ログが毎朝出力され、そのログの中身を、各サーバにログインし手作業で確認を行っています。 この作業を、VBscriptで行いたいと思っているのですが、どうもうまくいかず困っています。 正常時のログには必ず「1,2」と文字列が出力されます。 この文字列を検索対象にして、「1,2」の記述があれば、新規の結果確認ログに「ネットワークは正常です」とコメントを付けて、ファイルを出力し、 「1,2」が見つからなかった場合は、そのログファイルの3行目のみを、新規の結果ログファイルに抽出する、VBscriptを作成したいと思っています。 異常時のログファイルには、異常を知らせるコメントが3行記述されてます。必要な行は、3行目だけなので、3行目を結果ログとして出力したい。 以下、構文ですがVB初心者であり、色々なサイトを見て作ってみましたが全然動かず今回、ここに投稿しました。 '検索対象のテキストファイルのオープン Set WshShell = WScript.CreateObject("WScript.Shell") Set objFs = CreateObject("Scripting.FileSystemObject") Set objFs = Fs.OpenTextFile(NlbTmp) If Instr(A,"1,2") > 0 Then MsgBox "ネットワークは正常です" Else ”異常の場合の条件分岐が分からず・・・” Set oText = CreateObject("Scriptting.FileSystemObject").CreateTextFile( 結果ログ.log, True ) str = Fs.ReadLine Fs.WriteLine(str) End If 自分で作成するのが初めてな物で本当によろしくお願い致します。

  • VBScriptでtxtファイルの中身を送信するには?

    VBScriptのコマンド(関数?)に "Sendmail"というものがありますが これでファイルを扱う場合、”添付ファイル”として送信する機能になるようです。 添付ファイルとしてではなく、テキストファイルの中身をそのまま本文として送信するようなことはできるでしょうか。 イメージとしては、UNIX系OSで % mail atesaki@hoge.ne.jp < Okuru.txt といった感じです。 お知恵をお貸しください。 よろしくお願い致します。

  • エクセル、任意の「行」だけを抽出したい。

    こんなことできますか? A1:F100のセル内にランダムに数字が入っています。 質問1) この中から 1行目→3行目→5行目と一つ飛ばしで入っているデータを抽出してH1:M100の範囲内に表示させるにはどのような操作をすればいいのでしょうか?関数とかで簡単に抽出表示させる技とかあればいいのですが・・・。 A1-B1-C1-D1-E1-F1 A2-B2-C2-D2-E2-F2 A3-B3-C3-D3-E3-F3 A4-B4-C4-D4-E4-F4 A5-B5-C5-D5-E5-F5 A6-B6-C6-D6-E6-F6 A7-B7-C7-D7-E7-F7 ・・・ A100-B100-C100-D100-E100-F100 の中から A1-B1-C1-D1-E1-F1 A3-B3-C3-D3-E3-F3 A5-B5-C5-D5-E5-F5 ・・・ を抽出して H1-I1-J1-K1-L1-M1 ・・・ H100-I100-J100-K100-L100-M100 の範囲内に表示させたいです。 質問2) 同様に、 1行目→4行目→7行目と二つ飛ばしで入っているデータを抽出してO1:T100の範囲内に表示させるにはどのような操作をすればいいのでしょうか?関数とかで簡単に抽出表示させる技とかあればいいのですが・・・。 ※ 説明がわかりにくいかもしれませんが、よろしくお願いします。

  • batファイルについて教えてください

    以下の要件を満たすbatファイルを作成したいと思います。 ・5区切りのCSVファルイを以下のように変数に代入する  読み込みファイル例 列 a , b , c , d , e 111,222,333,444,555 111,222,222,666,777 111,111,123,888,999 行全体を%%a、c列を%%c e列を%%eへ代入 a,b,c,d,e ⇒ %%a c ⇒ %%c e ⇒ %%e ・%%cに3を含むものを確認したい ・if文を使用に3を含むものを処理対象にしたい ・3を含むものに処理を行った後それぞれ以下のようにファイル書き出しを実施したい。     %%a ⇒ zenbun.txt %%c + %%e ⇒ bassui.txt ・処理終了 forやifを使うんだろうなぁ、、程度しかわからず全く詳細な構成がわかりません。 どなたか教えていただけませんでしょうか? よろしくお願いします。

  • C言語でファイルからの文字列抽出について

    C言語でファイルからの文字列抽出について INPUTファイルからキーワードを探し、キーワードがあった行をOUTPUTファイルに出力したいのですが、どうしたら良いかわかりません。 //一行ずつ読み込む while(fgets(buf,sizeof(buf),fp)!=NULL){ //文字列からキーワードを探す //キーワードがある一行をOUTPUTファイルに出力 } こんな感じになると思うのですが、どういうコードを書いたら良いかわかりません。 分かる方いらっしゃいましたらご回答宜しくお願いします。

インクが検知されない
このQ&Aのポイント
  • 初期化、インク挿入部の掃除を行ったがインクを検知しない
  • お使いの環境はPC Windows, スマホ iOSで無線LAN接続です
  • 関連するソフト・アプリや電話回線の種類は不明です
回答を見る