みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

現在仕事で一日に大量のファイルが作成され、それの集計を行っています。ですので、そのファイルの集計を行えるバッチファイルを作成していますが、思ったものができません。

特定のファイル数の集計は行えるのですが、作成された時間おきに集計できるようにしたいんです。

例えば、
9:00に2ファイル作成された
バッチファイル実行→ログには9:00分が出力
(ファイル名及びファイル数2がログとして出力)

10:00には50ファイル作成された
バッチファイル実行

ログに以下が出力
9:00に出力分
10:00に出力分(ファイル名及びファイル数が50としてログ
に出力)

このようなことをバッチファイルで作成する事は無理でしょうか? ご助言宜しくお願い致します。

投稿日時 - 2005-04-25 14:56:17

QNo.1351290

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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%

投稿日時 - 2005-04-25 16:37:10

ANo.1

>このようなことをバッチファイルで作成する事は無理でしょうか?
(Q1)OSはWindowsですよね?種類はなんでしょう?

(Q2)やりたいことはどちらでしょう?
(A) 毎時00分に何らかの処理が動いてファイルが幾つか作成される。その処理に引き続いて、ファイル集計処理のバッチを動かしたい
(B) 随時どんどんファイルが作られる。9:00-9:59に作られたファイル、10:00-10:59に作られたファイルというような集計がしたい

(Q3)対象はとある特定のフォルダの中だけでいいでしょうか?

投稿日時 - 2005-04-25 15:29:57

補足

早速の返信有難う御座います

>(Q1)OSはWindowsですよね?種類はなんでしょう?
winsows2000です。

>(Q2)やりたいことはどちらでしょう?
>(A) 毎時00分に何らかの処理が動いてファイルが幾つか作>成される。その処理に引き続いて、ファイル集計処理のバ>ッチを動かしたい
>(B) 随時どんどんファイルが作られる。9:00-9:59に作ら>れたファイル、10:00-10:59に作られたファイルというよ>うな集計がしたい

(B)です。補足としましては、作成された日付と時間がファイル名として作成されます。
ファイル名は***-05042117****.csv
という形で作成されます。


>(Q3)対象はとある特定のフォルダの中だけでいいでしょう>か?
はい。フォルダ内に作成されるファイルです。
ファイル名は***-05042117****.csv
という形で出力されます。

宜しくお願い致します。

投稿日時 - 2005-04-25 15:33:57

あなたにオススメの質問