• 締切済み

VBでログファイルを結合したい

質問させてください。 以下のようなc:\test配下にあるログファイルを一つに結合したいと考えております。 以後もファイルが増え続けるため、どのようなファイルの状況でもc:\test以下のファイルはすべて結合したいのですがどなたかスクリプトを知っていらっしゃる方がいらっしゃいましたら教えていただけないでしょうか。 c:\test\20060801\test.log c:\test\20060801\test2.log c:\test\20060801\test3.log c:\test\20060802\test.log c:\test\20060803\test2.log c:\test\20060804\test3.log 以上、大変お手数ですが宜しくお願い致します。

みんなの回答

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.3

結合ファイルの対象を制御したいのであれば ANo.2のmFile.Name(参照ファイル名)を条件判定すればいいです。 例えば、ログファイルだけを結合対象にしたいならば mFile.Name(参照ファイル名)の拡張子が'log'のみ とすればいいですよ。 IF Right(mFile.Name,3) = "log" THEN '結合処理をする End IF

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.2

C:\TEST直下の全ファイルを1つの結合ファイルにする サンプルをVBScriptで作成しました。 下記内容のスクリプトを実行すれば、C:\TEST直下に結合ファイル join.txtが作成されます。 Dim fso, baseFolder, logFolders Dim frFile,toFile,objLog Dim myFolder,mFile Dim strLine Set fso = CreateObject("Scripting.FileSystemObject") Set baseFolder = fso.GetFolder("C:\TEST") Set logFolders = baseFolder.SubFolders Set toFile = fso.OpenTextFile("C:\TEST\join.txt", 2, True) For Each objLog In logFolders Set myFolder = fso.GetFolder("C:\TEST\" & objLog.Name) For Each mFile In myFolder.Files Set frFile = fso.OpenTextFile("C:\TEST\" & objLog.Name & "\" & mFile.Name, 1) Do While frFile.AtEndOfStream <> True strLine = frFile.ReadLine() toFile.Write strLine & vbCrLf Loop frFile.Close Set frFile = nothing Next Next toFile.Close

mattu123
質問者

お礼

お忙しい中ありがとうございます。 早速動作を確認いたしました。 追加でご相談させていただきたいことがあるのですが c:\test以下のファイルの中にログファイル以外のファイルも格納されていたため、 あるファイル(c:\readme.txt)はファイル結合しないようにしたいのですが 大変申し訳ないのですがVBscriptの設定方法をしっていらっしゃいましたら教えていただけないでしょうか。 大変申し訳ございません。 宜しくお願い致します。

  • MASA_H
  • ベストアンサー率42% (64/151)
回答No.1

すべてプレーンテキストと仮定していいの? VisualBasic、VBScriptどっち? アーカイバでまとめちゃだめなの? 結合順序に縛りはあるの? etc... わからないことだらけです。もう少し条件を絞り込まないとだめかと。

関連するQ&A

  • バッチで複数のExcelファイルを1つに結合したい

    お世話になります。 私のPCのWidonwsタスクスケジューラーを使って昼12:00になったら、ファイルサーバー(\\192.168.XXX.XXX)に保管してある"売上(東京).xls"と"売上(名古屋).xls"という2つのExcelファイルを私のPCの\Cドライブ\TEST\配下に"TEST.xls"というファイルを作成して、このファイルに2つのEXCELファイルを結合(上書き)したいのです。 下記のコードを記述しましたところ、TEST.xlsは作成されましたが、中身が壊れて開けません。 何がいけないのかご教授いただけませんでしょうか? (環境) WindowsXP SP3 Excel2003 以下、私が書いたコード ========================================== @echo off echo ファイルを結合します。 copy \\192.168.XXX.XXX\営業\東京\売上(東京).xls + \\192.168.XXX.XXX\営業\名古屋\売上(名古屋).xls C:\TEST\ファイル\TEST.xls /Y echo 終了しました。 ==========================================

  • ファイル結合

    現在、テキストファイルの結合で困っています。 test1.txt test2.txt・・・・・・test*.txtのファイルがあり それぞれのファイルには縦に1列、数値が500個入っています。 test1.txtの中身(例) 0.3 0.5 0.8 0.6 0.2 0.8 それを以下のように結合したいのですがうまくいきません 0.3 0.8 0.2・・・・・・ 1.9 0.5 0.8 0.7・・・・・・ 0.1 0.8  ・ 0.6  ・ 0.2  ・ 0.8 0.5 0.4・・・・・・ 0.7 参考書のプログラムを参考に作ってみたのですが途中でずれてしまうのです そのプログラムを載せるべきかもしれませんが、大部分が参考書のままなので今のところ載せてません こんな状態では難しいとは思われるのですが、どうかアドバイスをお願いします。

  • Windowsのバッチファイルでcallコマンド時にログを残す方法について

    お世話になっております。 Windowsのバッチファイルについての質問です。 Windowsのバッチファイル内で、さらにバッチファイルをcallコマンドに よって、呼び出しているのですが、その呼び出したバッチファイルの logを残したいのですが、実装方法が分かりません。 # UNIXのscriptコマンドのようなコマンドがあれば実装できると # 考えたのですが、存在していないようです。 callコマンドは、リダイレクトorパイプが使えないらしいので、 以下のような記述だとlogを出力することができません。 call test.bat > test.log ご存知の方がいらっしゃいましたら、ご教示下さい。 以上、よろしくお願いいたします。

  • EXCEL VBAフォルダ配下のファイル削除したい

    お世話になります。 VBAを使って特定フォルダ(C/TEST)配下のファイルを全て一括削除したいのです。 :特定フォルダ=C/TEST やりたいこと EXCELシートに[削除]というボタンを配置してクリックしたらC/TEST配下のファイルを全て 削除するロジックをどなたかご教授いただけますでしょうか? C/TEST配下にファイルがない場合は[削除対象ファイルは存在しません]というメッセージを出して処理を終えたいです。 よろしくお願い致します。 EXCEL2013

  • Solarisのlogファイルについて

    Solarisマシンで、ログファイルについて、よくやる方法として、 『"/var"ディレクトリ配下等に作成されるログファイルなど、 いくつかのファイルをサイクリックに使用するように 設定してある。』と聞いたんですが、 具体的にどこにどのような設定がされているのか 教えてもらえないでしょうか? (※Solaris自体にその機能があるであろう ということを前提に質問しているのですが…。)

  • 動画ファイルの結合について

    DLした動画ファイルをリアルプレイヤーで再生しているのですが、大容量の為か1つの動画をいくつものファイルにわけて配信してくる為、保存すると、もちろん1つの動画がいくつものファイルにわかれてしまいます。再生は連続再生出来るソフトがあるので問題ないのですが、出来ればファイルを1つにまとめて(結合)して、連続再生ソフトを使わなくても、全て再生出来るようにしたいのですが、どのような方法があるか教えて頂きたいのですが。過去ログに似たような質問がありその回答通りしようと思ったのですが、どうもうまくいかなくて。どうかよろしくお願い致します。

  • VBScriptで削除処理

    初めまして。 VBScriptを今回初めて使用しながらスクリプトを作成しようとしています。 〔質問〕 以下のような削除処理をVBScriptにて実施したいのですが、どのような構文を書けばいいのでしょうか? ご教授お願いします。 以下、例を挙げ記述致します。 (例)処理日が2008/3/22の場合。 「AAAA」ディレクトリ配下の以下のログファイルを二日前までの日付になっているログファイルのみ残し、あとは全て削除するという処理をしたい。 AAAAディレクトリの配下 ・aa080319.log→削除 ・aa080320.log→削除 ・aa080321.log→残す ・aa080322.log→残す 上記例を用いますが、自分で考えた処理フローとしまして、 (1)「AAAA」ディレクトリ配下のファイル一覧をテキストファイルに書き込む。 (2)「(1)」で作成したテキストファイルを読み込み、「2008322」と「2008321」に一致しないログファイルを削除。 以上、宜しくお願いします。

  • [VB2008]ファイル存在確認について

    質問です。VB2008を使ってる者ですが、以下のソースが分りません。 例で言います。 最初に以下のファイル存在を確認します。 C:\TEST\test1.txt C:\TEST\test2.txt C:\TEST\test3.txt 全て存在する ここまでは良いのですが、この後 例えば C:\TEST\test1.txt C:\TEST\test2.txt C:\TEST\test3.txt C:\TEST\test4.txt ←これ(これ) ファイルの存在確認で同じフォルダ("TEST")に 存在確認の必要としない不要ファイル("これ")を検出して 削除したいのですが、方法が分りません。 "これ"の不要ファイルの名前は、必ずしも"test4"では無い 存在チェック以外の不要ファイルを削除したいのです。 Dim checkFile As String = "C:\Work\Test.txt" If System.IO.File.Exists(checkFile) Then Console.WriteLine("ファイルが存在します") Else Console.WriteLine("ファイルが存在しせん") End If 上記の後、必要の無いファイルを検出して削除するには どうすれば良いでしょうか? 凄く困ってるので、教えて下さい

  • バッチファイルで複数フォルダのファイルを結合したい

    バッチファイルで複数フォルダの中にあるlist.txtというテキストファイルを結合するにはどのように記述すればよいでしょうか。 具体的には、 複数のフォルダがあり、 C:\test\202104026\list.txt C:\test\202104025\list.txt      : C:\test\20000101\list.txt というような感じで、 各フォルダの中にlist.txtというファイルが入っています。 list.txt以外にもいろいろなファイルが入っています。 各フォルダの中のlist.txtファイルの内容を結合した1個のファイルを生成するバッチファイル(test.bat)を教えてください。 よろしくお願いします。(Windows10)

  • VB Scriptで過去LOGファイルの削除方法

    VB Scriptで保存期間(30日間)より以前に作成されたLOGファイルの削除を実行したいです。 御指導のほどお願い致します。

専門家に質問してみよう