• 締切済み

バッチファイルでファイル数計算

現在仕事で一日に大量のファイルが作成され、それの集計を行っています。ですので、そのファイルの集計を行えるバッチファイルを作成していますが、思ったものができません。 特定のファイル数の集計は行えるのですが、作成された時間おきに集計できるようにしたいんです。 例えば、 9:00に2ファイル作成された バッチファイル実行→ログには9:00分が出力 (ファイル名及びファイル数2がログとして出力) 10:00には50ファイル作成された バッチファイル実行 ↓ ログに以下が出力 9:00に出力分 10:00に出力分(ファイル名及びファイル数が50としてログ に出力) このようなことをバッチファイルで作成する事は無理でしょうか? ご助言宜しくお願い致します。

みんなの回答

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

#1です。ファイル名に日時があるとのことなので抽出が楽になります。4/25の16時台に実行すると、ファイル名が、???-05042515????.csv の物を抽出します。ログにはファイル名一覧と最後に時刻・個数を書きます。 @echo off set LOGFILE=\logfolder\logfile.txt cd \datafolder rem 1時間前の日時を求める echo WScript.Echo DateAdd("h",-1,Now()) >tmp.vbs for /f "tokens=1-4 delims=/-: " %%A in ('cscript //nologo tmp.vbs') do set X=%%A%%B%%C%%D del tmp.vbs rem ファイルを探してログに書く set CNT=0 for %%F in (???-%X:~2%????.csv) do (  set /a CNT+=1  echo %%F>>%LOGFILE% ) echo >>%LOGFILE% %X% FileCount=%CNT%

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

>このようなことをバッチファイルで作成する事は無理でしょうか? (Q1)OSはWindowsですよね?種類はなんでしょう? (Q2)やりたいことはどちらでしょう? (A) 毎時00分に何らかの処理が動いてファイルが幾つか作成される。その処理に引き続いて、ファイル集計処理のバッチを動かしたい (B) 随時どんどんファイルが作られる。9:00-9:59に作られたファイル、10:00-10:59に作られたファイルというような集計がしたい (Q3)対象はとある特定のフォルダの中だけでいいでしょうか?

banananaba
質問者

補足

早速の返信有難う御座います >(Q1)OSはWindowsですよね?種類はなんでしょう? winsows2000です。 >(Q2)やりたいことはどちらでしょう? >(A) 毎時00分に何らかの処理が動いてファイルが幾つか作>成される。その処理に引き続いて、ファイル集計処理のバ>ッチを動かしたい >(B) 随時どんどんファイルが作られる。9:00-9:59に作ら>れたファイル、10:00-10:59に作られたファイルというよ>うな集計がしたい (B)です。補足としましては、作成された日付と時間がファイル名として作成されます。 ファイル名は***-05042117****.csv という形で作成されます。 >(Q3)対象はとある特定のフォルダの中だけでいいでしょう>か? はい。フォルダ内に作成されるファイルです。 ファイル名は***-05042117****.csv という形で出力されます。 宜しくお願い致します。

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

関連するQ&A

  • バッチファイルの日付計算が出来ません

    毎月1回実行するバッチファイルがあります。 このバッチファイルは、あるプログラムのログを退避するバッチファイルなので 月に2度以上実行させないようなチェックを入れたいと考えています。 たとえば、 最初に実行する時は、バッチファイルの中で日付を持たせたファイルを出力しておき 2度目の実行時は、日付のファイルを読み込んで1ヶ月以上たっていなければエラーとする ・・・といった事をやりたいのですが、やり方がわかりません。 日付ファイルの出力は、 echo %DATE:/=% >D:\datecheck.log とすれば良いことはわかるのですが、 日付を比較する方法はどうすれば良いでしょうか。 単純にset /Aで引き算をしてしまうと 20100207-20100131=76となってしまいます。。 どうか皆さん、よろしくお願いします(;o;)

  • バッチファイルについて

    ファイルの中身を抽出するバッチを作成しました。 そのバッチファイルを実行し、test.csvというファイル名をつけて出力できたんですが、出力パスも指定することは可能なんでしょうか? find.bat > test.csv

  • バッチファイルについて

    教えて下さい。 複数のログファイルを、バッチファイルをつかってひとつのCSVファイルにまとめます。 forfiles コマンドを使って、所定内の*.csv ファイルを typeで出力し 1つのCSVファイルにまとめます。 しかし、各ログファイルの文末が改行されておらず1つにまとめると 前のファイルの行末に次のログファイルの1文字目が来てしまいます。 ログファイルを、全て添付の下側の画像のように改行する設定にできたらいいですが 数が多いのでバッチコマンドに何か手を加える方向でいきたいです。 改行のCSVファイルを用意して、ログファイルの間に繰り返しかませることも できるならありかと考えています。 何かいい方法はないでしょうか?

  • バッチファイルでフォルダ内のファイル数をカウントしたい

    こんにちは。よろしくお願いします。 WindowsServer2003環境で、 バッチコマンドで以下のことをしたいと思っています。 (1)特定のフォルダに存在するファイル数をカウント (2)既定の数あれば何もせず終了、数に相違があればエラーを返す。 (エラーはエラーレベルとSEND MESSAGEの出力) 既定の数は常に決まった数です。 やりたいことは簡単なのですが、 DOSコマンドだけだと方法が思いつきません。。。 VBScriptなどを使わないと無理でしょうか。。。

  • SQLをバッチで実行

    掲題の件で少し教えていただきたいことがあります。 バッチファイルでSQLPLUSを起動し、 @XXXXXXXXX.SQL >> XXX.log(バッチのログ)と 実行するのですが、このSQL文がインサート文や アップデート文など通常のSQL文だと バッチでのリダイレクションの結果に XX行作成されました。とかXX行更新されましたとか 出力されると思うのですが、 実行するSQL文の中でさらに、 @XXXXXXXXX.SQL と記述していると どのようにログファイルに出力されますか? XX行作成されました。とかXX行更新されましたとか が出るとうれしいのですが… わかりにくい質問かもしれませんがお願いいたします。

  • バッチで特定のファイルを消す方法と日付の計算

    いつもお世話になっております。 バッチの作成方法について教えてください。 tmpフォルダには日々ログファイルが作成されていきます。 ログファイルのファイル名はバラバラですが、必ず20140527のように yyyymmddの日付が入っています。 3日前のログはもう不要なので、削除したいのです。 (1)本日より3日前の計算はどのようにしたらよいでしょうか? (2)3日前の日付が入っているファイル名を削除するにはどのようにしたらよいでしょうか? 具体的にプログラムを書いて教えていただけないでしょうか。 お手数をおかけしますが、よろしくお願いします。

  • バッチファイル 時間指定

    バッチファイルをスタートアップに入れています。 手軽で便利なのですが、起動するたびに出てしまうので、if文か何かを使って、前回の実行してから12時間経っていない場合はバッチファイルを終了させるようにできないでしょうか。 robocopyを使ったバッチで、オプションでログを作成するようにしています。そのテキストファイルの作成時間で12時間経っているかどうか判断できればと思っています。

  • バッチファイルの書き方

    Linux上で実行するバッチファイルを作っています。 runというファイル名で、中には、  sudo ./GUItask とだけ書かれている、GUItaskというアプリケーションを実行するバッチファイルです。 (./runとコンソール上で打って使うつもりです) ここで、 アプリケーションが起動した時間と終了した時間を記録したいので、  /bin/date >> log  echo "起動" >> log  sudo ./GUItask  /bin/date >> log  echo "終了" >> log と書きました。 これで、logというファイルに、  2009年2月3日火曜日12:12:43 JST  起動  2009年2月3日火曜日12:15:43 JST  終了 などと書かれるようになりました。 これを、  2009年2月3日火曜日12:12:43 JST 起動  2009年2月3日火曜日12:15:43 JST 終了 のように、文字列を同じ行に書きたいのですが、 どのように記述したらよいでしょうか。

  • バッチファイルで

    あるプログラム(hello.exe)をcmd上で実行させます。 内容は、入力した数だけHello, world!を出力、というものです。 例 C:¥windows¥> hello.exe 3 Hello, world! Hello, world! Hello, world! これをすべてバッチファイルで実行するのにはどうすればいいですか?

  • バッチファイルでPINGログ取得

    バッチファイルでPINGのログを取得したいと考えています。 下記のバッチを作成して実行してみましたが @echo off set LOG=log.log echo "------------ START -------------" >> %LOG% ping -w 1 -n 1 localhost >> %LOG% 「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」とエラーメッセージが延々と表示されます。 ログにはECHOで出力したSTARTしかありません。 コマンドラインから上記のPINGを打つと正常に終了します。 使用しているOSはWinXP SP2です。 何が原因なのか解決法をご存知の方がいらっしゃいましたら宜しくお願いします。

このQ&Aのポイント
  • 購入したTK-TCM012BKのテンキーキーボードを使用している際、NumLookをONにしないと数字が入力できません。
  • NumLookをONにしなくても他のキーボードでは数字が入力できるのに、TK-TCM012BKだけが対応していない状況です。
  • この問題を解決するためには、NumLookを常にONにするか、別のキーボードを使用する必要があります。
回答を見る

専門家に質問してみよう