現状のファイルサーバには一体何十万のファイルがあるのか?

意外なことに、ファイル容量は何ギガバイトかすぐにわかりますが、ファイル数を即答できる管理者さんは少ないようです。

Windowsではドライブを右クリックすれば容量は瞬時にわかりますが、ファイル数は数えないとわからないからで、しかもエクスプローラでフォルダアイコンを右クリックして、ファイル数やフォルダサイズを表示するのに、多数のファイルのあるフォルダの場合には何分も何十分もかかります。調べたいフォルダが複数ある場合には、バッチ処理で複数フォルダの集計を一気に実行できないため、たいへんに骨が折れます。

鉄飛テクノロジーでは、文書管理・検索システムFileBlogの導入を検討されるお客様が、簡単にファイルの数を数えられるように、フォルダパスの一覧を与えたら、フォルダ階層を一括スキャンして、主なファイル種類別にファイル数・ファイルサイズを数え上げて一覧出力するツール「FbFileScanner」を公開します。

対象ユーザと特徴

どちらかというと玄人向けのツールです

  • 複数のフォルダパスを指定して、その中のファイル数・ファイルサイズを、バッチ処理により主要拡張子別に集計したい、というユーザが対象です
  • 検索エンジンの導入検討、ファイルサーバの移行や、整理整頓、ディスク増設などを計画する、システム管理者およびエンジニアによる利用を想定しています
  • コマンドラインツールなので、素人目には使いづらいかもしれませんが、バッチファイルからの連続呼び出しが簡単です
  • スピード最優先なので、出力は最低限でシンプルですが、最小限のメモリリソースしか使用せず、最速で動作します

使用許諾

  1. 本プログラム(FbFileScannerV2およびV3)は、誰でも、無料で、ご自由にご使用になれます。
  2. ただし、無保証ですので、動作について弊社は一切責任を負いません。(基本的にはファイル一覧を読み出すだけであり、ファイルの更新は行いませんから、さほど危険なプログラムではないはずです)
  3. 使用は無償で無制限ですが、開発元である弊社の許可なしでの、第三者への再配布・再使用許諾は認めません。

ダウンロード

機能

  1. 選択したルートフォルダ以下の全フォルダの全ファイルをスキャンします
  2. 主なファイル種類について、ファイル数とファイルサイズを集計します
  3. ファイル数・ファイルサイズの基準を設けて、一定以上の数量が見つかったフォルダを、フォルダ一覧に出力しますので、ファイル数・容量の少ないフォルダを無視した出力を得ることが出来ます
  4. フォルダ一覧だけでなく、ファイル一覧も出力することができます
  5. ファイル数が数百万件を越えて、ファイル一覧ファイルが巨大になることを想定しており、メモリ消費量とディスクI/Oを抑えて、始終高速に動作します

リリース情報

2021/10/29

ver3をリリース

2008/07/17

ファイル一覧をユニコード出力するようにしました。また、長いファイル名・ShiftJIS範囲外ファイルを例外一覧に書き出すようになりました。

2008/04/15

大量ファイル一覧・フォルダ一覧作成ツール「FbFileScanner」を公開します。

使い方

FbFileScannerは、コマンドラインプログラムです。Windowsコマンドプロンプトから実行してください。コマンドプロンプトでの主な使用方法を、下記に例示します。

使用例1(1つのフォルダ内のファイルを数える)

下記のように、フォルダをひとつ指定すると、そのフォルダを対象にファイル数を数えます(フォルダパスは、D:\data\hoge みたいなドライブ文字で始まる形式でも、\\サーバ名\共有名で始まる(UNC)形式でもOKです。)
対象フォルダに読み取り件を持つユーザで実行してください。(権限不足でアクセスできないファイル・フォルダはスキップされるため、正しい集計ができなくなります。)

FbFileScanner \\broccoli\teppi\work




結果1

FbFileScannerを実行すると、画面に下記のように実行結果が出力されます。

c:\temp>FbFileScanner \\broccoli\teppi\work
time:2022-05-16T20:26:46.685+09:00	lv:INFO	action:started	logpath:c:\temp\FbFileScannerV32_result.log	directories:\\broccoli\teppi\work
time:2022-05-16T20:26:46.685+09:00	lv:INFO	action:enum begin	directory:\\broccoli\teppi\work	count:0	directorycount:0	filecount:0	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:0	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:46.690+09:00	lv:INFO	action:enum checkpoint 0	directory:\\broccoli\teppi\work	count:0	directorycount:0	filecount:0	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:0	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:47.033+09:00	lv:INFO	action:enum checkpoint 1000	directory:\\broccoli\teppi\work\common\casperjs_test\casperjs\api	count:37	directorycount:0	filecount:37	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:0	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:47.779+09:00	lv:INFO	action:enum checkpoint 2000	directory:\\broccoli\teppi\work\common\casperjs_test\casperjs\node_modules\casperjs\node_modules___\phantomjs\node_modules\request\node_modules\bl\test	count:2	directorycount:0	filecount:2	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:0	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:48.802+09:00	lv:INFO	action:enum checkpoint 3000	directory:\\broccoli\teppi\work\common\casperjs_test\casperjs\node_modules\mocha\node_modules\commander	count:2	directorycount:0	filecount:2	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:0	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:49.544+09:00	lv:INFO	action:enum checkpoint 4000	directory:\\broccoli\teppi\work\common\Fonts\fonts\x	count:1	directorycount:0	filecount:1	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:0	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:50.604+09:00	lv:INFO	action:enum checkpoint 5000	directory:\\broccoli\teppi\work\common\Fonts\fonts\y	count:4	directorycount:0	filecount:4	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:0	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:51.513+09:00	lv:INFO	action:enum checkpoint 6000	directory:\\broccoli\teppi\work\common\Fonts\fonts\z	count:0	directorycount:0	filecount:0	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:0	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:51.764+09:00	lv:INFO	action:enum checkpoint 7000	directory:\\broccoli\teppi\work\common\images\Microsoft_icons\VS2012 Modern Image Library\VS2012 Modern Image Library\Actions\bmp	count:680	directorycount:0	filecount:680	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:680	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:51.786+09:00	lv:INFO	action:enum checkpoint 8000	directory:\\broccoli\teppi\work\common\images\Microsoft_icons\VS2012 Modern Image Library\VS2012 Modern Image Library\Actions\png	count:390	directorycount:0	filecount:390	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:390	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:51.836+09:00	lv:INFO	action:enum checkpoint 9000	directory:\\broccoli\teppi\work\common\images\Microsoft_icons\VS2012 Modern Image Library\VS2012 Modern Image Library\Objects\bmp	count:462	directorycount:0	filecount:462	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:462	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:51.859+09:00	lv:INFO	action:enum checkpoint 10000	directory:\\broccoli\teppi\work\common\images\Microsoft_icons\VS2012 Modern Image Library\VS2012 Modern Image Library\Objects\png	count:160	directorycount:0	filecount:160	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:160	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:26:56.381+09:00	lv:INFO	action:enum checkpoint 20000	directory:\\broccoli\teppi\work\okd\backup\backup00_岡田\photo\20090601	count:8	directorycount:0	filecount:8	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:8	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:01.848+09:00	lv:INFO	action:enum checkpoint 30000	directory:\\broccoli\teppi\work\y-okuno\__backup\-20151022\Apache22\include	count:27	directorycount:0	filecount:27	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:0	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:09.413+09:00	lv:INFO	action:enum end	directory:\\broccoli\teppi\work	count:32716	directorycount:3128	filecount:29588	last1yearfilecount:617	docm,doc,docx:270	pptm,pptx,ppt:72	xlsm,xlsx,xls:329	vst,vss,vsd,vdw:2	pdf:247	jtt,jtd:1	xbd,xdw:4	html,csv,htm,txt:1762	dxf,dwg:17	bmp,jpg,tif,tiff,png,jpeg,gif:15783	mp4,avi,flv,m2v,wmv,mpg,mov:205	eps,ai,indd:150
time:2022-05-16T20:27:09.413+09:00	lv:INFO	action:completed
  • 上記のように出力されますが、一行の文字数が多いため、コマンドプロンプトでは右端で折返って複数行になって表示され、たいへん見にくい表示となります。画面出力と同じ内容が、カレントフォルダに FbFileScanner_result.log としてテキスト出力されるので、これをテキストエディタやExcelで開いて確認してください。TABで区切られたテキストファイルなので、テキストエディタからコピーして、Excelにペーストすれば、整形されて読みやすくなります。
  • FbFileScannerの出力を整形するスクリプトについて、本ページの末尾にPowerShellスクリプトを紹介しています。御覧ください
  • ひとつのフォルダに付き、enum begin の行で始まり、enum checkpoint の行が何度か出力された後、 enum end の行が出て終了します。
  • checkpointの行は、最初の1万件まで千件おきに出力され、その後は一万件おきに出力されます。どのフォルダまで処理が進んだかがわかります。

結果1の読み方

"enum end"の行に注目してください。これが、最終的なカウントです。

INFO    2021-10-28T19:11:21.402+09:00 enum end	directory:\\broccoli\teppi\work	count:31447	directorycount:2860	filecount:28587	last1yearfilecount:138	docm,doc,docx:275	pptm,pptx,ppt:71	xlsm,xlsx,xls:313	vst,vss,vsd,vdw:2	pdf:238	jtt,jtd:1	xbd,xdw:4	html,csv,htm,txt:1754	dxf,dwg:17	bmp,jpg,tif,tiff,png,jpeg,gif:15622	mp4,avi,flv,m2v,wmv,mpg,mov:205	eps,ai,indd:150

横に長いので、行と列を入れ替えると下記のようになります。

enum end
directory:\\broccoli\teppi\work
count:31447
directorycount:2860
filecount:28587
last1yearfilecount:138
docm,doc,docx:275
pptm,pptx,ppt:71
xlsm,xlsx,xls:313
vst,vss,vsd,vdw:2
pdf:238
jtt,jtd:1
xbd,xdw:4
html,csv,htm,txt:1754
dxf,dwg:17
bmp,jpg,tif,tiff,png,jpeg,gif:15622
mp4,avi,flv,m2v,wmv,mpg,mov:205
eps,ai,indd:150

コロンで区切ってあるものを表にすると、下記の通りに、ファイル種類別のカウントが得られます

項目名カウント説明
count31,447ファイル数+フォルダ数の総合計
directorycount2,860フォルダ数合計
filecount28,587ファイル数合計
last1yearfilecount138過去一年以内に更新されたファイル数
docm,doc,docx275Word文書
pptm,pptx,ppt71PowerPoint文書
xlsm,xlsx,xls313Excel文書
vst,vss,vsd,vdw2Visio文書
pdf238PDF文書
jtt,jtd1一太郎文書
xbd,xdw4DocuWorks文書
html,csv,htm,txt1,754HTML文書
dxf,dwg17CAD図面
bmp,jpg,tif,tiff,png,jpeg,gif15,622画像ファイル
mp4,avi,flv,m2v,wmv,mpg,mov205動画ファイル
eps,ai,indd150DTPファイル

使用例2(「ファイル数の多い」主要なフォルダを数え上げる)

下記のように、/countThreshold パラメータでカウントを指定すると、与えられたフォルダのサブフォルダで、指定された件数以上のファイル・フォルダを含む「ファイル数の多い」サブフォルダの統計情報を出力するようになります。

FbFileScanner \\broccoli\teppi\work /countThreshold 2000

上記の例では、2000件以上のファイル・フォルダを含むフォルダの統計情報を出力します。なお、出力行は、"action:outstanding folder"としてマークされます。下記に、結果の一部(enum:checkpoinとマークされる進捗表示行を取り除いたもの)を例示します。

time:2022-05-16T20:27:27.337+09:00	lv:INFO	action:started	logpath:c:\temp\FbFileScannerV32_result.log	directories:\\broccoli\teppi\work
time:2022-05-16T20:27:27.338+09:00	lv:INFO	action:enum begin	directory:\\broccoli\teppi\work	count:0	directorycount:0	filecount:0	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:0	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:31.062+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\casperjs_test\casperjs	count:2494	directorycount:433	filecount:2061	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:64	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:27	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:31.062+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\casperjs_test	count:2500	directorycount:434	filecount:2066	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:64	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:27	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:34.494+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\Fonts\fonts\現在入手可能な日本語フォント全450書体[Windows完全版]	count:2716	directorycount:462	filecount:2254	last1yearfilecount:0	docm,doc,docx:56	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:55	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:122	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:210	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:3
time:2022-05-16T20:27:34.551+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\Fonts\fonts	count:2777	directorycount:478	filecount:2299	last1yearfilecount:0	docm,doc,docx:56	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:55	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:139	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:210	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:3
time:2022-05-16T20:27:34.551+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\Fonts	count:2798	directorycount:479	filecount:2319	last1yearfilecount:0	docm,doc,docx:56	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:55	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:141	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:210	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:3
time:2022-05-16T20:27:34.648+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\images\Microsoft_icons\VS2012 Modern Image Library\VS2012 Modern Image Library\Actions	count:2021	directorycount:4	filecount:2017	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:1968	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:34.739+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\images\Microsoft_icons\VS2012 Modern Image Library\VS2012 Modern Image Library\Objects	count:2059	directorycount:4	filecount:2055	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:1884	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:35.100+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\images\Microsoft_icons\VS2012 Modern Image Library\VS2012 Modern Image Library\x--archive--x	count:2491	directorycount:40	filecount:2451	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:28	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:2096	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:35.137+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\images\Microsoft_icons\VS2012 Modern Image Library\VS2012 Modern Image Library	count:7869	directorycount:57	filecount:7812	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:2	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:28	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:7220	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:35.137+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\images\Microsoft_icons\VS2012 Modern Image Library	count:7871	directorycount:58	filecount:7813	last1yearfilecount:0	docm,doc,docx:1	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:2	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:28	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:7220	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:35.137+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\images\Microsoft_icons	count:7872	directorycount:59	filecount:7813	last1yearfilecount:0	docm,doc,docx:1	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:2	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:28	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:7220	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:35.892+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common\images	count:8373	directorycount:121	filecount:8252	last1yearfilecount:0	docm,doc,docx:1	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:2	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:30	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:7536	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:0
time:2022-05-16T20:27:37.324+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\common	count:17571	directorycount:1292	filecount:16279	last1yearfilecount:73	docm,doc,docx:83	pptm,pptx,ppt:36	xlsm,xlsx,xls:41	vst,vss,vsd,vdw:1	pdf:88	jtt,jtd:1	xbd,xdw:4	html,csv,htm,txt:493	dxf,dwg:13	bmp,jpg,tif,tiff,png,jpeg,gif:9975	mp4,avi,flv,m2v,wmv,mpg,mov:5	eps,ai,indd:126
time:2022-05-16T20:27:40.111+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\okd\backup\backup00_岡田\photo	count:4058	directorycount:87	filecount:3971	last1yearfilecount:0	docm,doc,docx:0	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:3778	mp4,avi,flv,m2v,wmv,mpg,mov:192	eps,ai,indd:1
time:2022-05-16T20:27:40.111+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\okd\backup\backup00_岡田	count:4063	directorycount:89	filecount:3974	last1yearfilecount:0	docm,doc,docx:1	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:3779	mp4,avi,flv,m2v,wmv,mpg,mov:192	eps,ai,indd:2
time:2022-05-16T20:27:40.207+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\okd\backup	count:4089	directorycount:114	filecount:3975	last1yearfilecount:0	docm,doc,docx:1	pptm,pptx,ppt:0	xlsm,xlsx,xls:0	vst,vss,vsd,vdw:0	pdf:0	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:0	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:3780	mp4,avi,flv,m2v,wmv,mpg,mov:192	eps,ai,indd:2
time:2022-05-16T20:27:41.139+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\okd	count:6660	directorycount:245	filecount:6415	last1yearfilecount:36	docm,doc,docx:67	pptm,pptx,ppt:3	xlsm,xlsx,xls:47	vst,vss,vsd,vdw:0	pdf:30	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:22	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:5173	mp4,avi,flv,m2v,wmv,mpg,mov:196	eps,ai,indd:20
time:2022-05-16T20:27:50.837+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\y-okuno\__backup\-20151022	count:3418	directorycount:872	filecount:2546	last1yearfilecount:0	docm,doc,docx:16	pptm,pptx,ppt:17	xlsm,xlsx,xls:13	vst,vss,vsd,vdw:0	pdf:35	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:344	dxf,dwg:0	bmp,jpg,tif,tiff,png,jpeg,gif:257	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:1
time:2022-05-16T20:27:50.837+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\y-okuno\__backup	count:4769	directorycount:953	filecount:3816	last1yearfilecount:0	docm,doc,docx:19	pptm,pptx,ppt:23	xlsm,xlsx,xls:18	vst,vss,vsd,vdw:0	pdf:42	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:1050	dxf,dwg:4	bmp,jpg,tif,tiff,png,jpeg,gif:497	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:2
time:2022-05-16T20:27:50.895+09:00	lv:INFO	action:outstanding folder	directory:\\broccoli\teppi\work\y-okuno	count:6170	directorycount:1257	filecount:4913	last1yearfilecount:477	docm,doc,docx:33	pptm,pptx,ppt:29	xlsm,xlsx,xls:149	vst,vss,vsd,vdw:0	pdf:51	jtt,jtd:0	xbd,xdw:0	html,csv,htm,txt:1060	dxf,dwg:4	bmp,jpg,tif,tiff,png,jpeg,gif:596	mp4,avi,flv,m2v,wmv,mpg,mov:0	eps,ai,indd:2
time:2022-05-16T20:27:50.895+09:00	lv:INFO	action:enum end	directory:\\broccoli\teppi\work	count:32716	directorycount:3128	filecount:29588	last1yearfilecount:617	docm,doc,docx:270	pptm,pptx,ppt:72	xlsm,xlsx,xls:329	vst,vss,vsd,vdw:2	pdf:247	jtt,jtd:1	xbd,xdw:4	html,csv,htm,txt:1762	dxf,dwg:17	bmp,jpg,tif,tiff,png,jpeg,gif:15783	mp4,avi,flv,m2v,wmv,mpg,mov:205	eps,ai,indd:150
time:2022-05-16T20:27:50.895+09:00	lv:INFO	action:completed

使用例3(複数フォルダ(少数)内のファイルを数える)

下記のように、引数で複数のフォルダを指定することができます。

FbFileScanner \\broccoli\teppi\work \\broccoli\teppi\sales D:\share\it

使用例4(複数フォルダ(多数)内のファイルを数える)

対象フォルダが多数ある場合は、フォルダ一覧をテキストファイルから供給できます。

  • テキストファイルに、下記のように改行区切りでフォルダパスの一覧を記入し、"dirlist.txt"という名前で(UTF8文字コードで)保存します。
\\broccoli\teppi\work
\\broccoli\sales
c:\temp

  • 下記のようなコマンドラインで(フォルダ一覧ファイルを参照して)実行します。
FbFileScanner -directorylist c:\temp\dirlist.txt

コマンドラインオプション

ログ出力ファイル名の指定

下記のように、-logpath オプション引数でログ出力ファイルパスを指定できます。省略時にはカレントフォルダに FbFileScanner_result.txtが作成されます

FbFileScanner.exe c:\shareFbFileScanner.exe c:\share -logpath c:\hoge.txt

フォルダ一覧ファイル名の指定

下記のように、-directorylist オプション引数でファイル名一覧ファイルのパスを指定します

FbFileScanner.exe -directorylist 

集計対象拡張子リストの追加

-type オプション引数で、集計対象の対象拡張子グループを追加できます

カンマ区切りで拡張子を1つ以上指定することで、それら拡張子を持つファイルの数とサイズが集計されるようになり、出力ファイルに対応する列が追加されます。セミコロン区切りで、複数グループを追加できます。

FbFileScanner.exe c:\share -type doc,xls,ppt;docx,xlsx,pptx

集計結果の使い方

出力ファイルを見るときは、Excelでタブ区切りテキストファイルとして開くのが見やすいのでおすすめです。

"end enum"の列で、フィルタをかけたり、並べ替えたりして、集計結果の行だけを取り出します。

このファイル形式は、いわゆる"LTSV"形式です。(Labeled Tab Separated Values)

LTSVファイルを加工して、タブ区切りテキストに変換するPowerShellスクリプトを下記に公開します。

実行結果例

複数フォルダについてFbFileScannerを実行した後に、スクリプト実行したあとの出力をExcelに貼り付けると下記のようになります。

スクリプト

# LTSV2TSV
# 本スクリプトを 例えばltsv2tsv.ps1として保存して、実行してください。
# ExecutionPolicyに関するセキュリティエラーが出る場合は、呼び出し元のPowerShellコマンドラインで、下記を先に実行することで実行可能になります
# Set-ExecutionPolicy RemoteSigned -Scope Process 
#

$InputFile = "FbFileScanner_result.log"

#
# ----- STEP 1 ----- ヘッダ行の処理
#

# 入力ファイルから、"enum end"の行を抽出します
#Get-Content $InputFile | Select-String "`taction:enum end`t"

# 抽出した行の先頭行を取り出します
#$line = Get-Content $InputFile | Select-String "`taction:enum end`t" | Select-Object -First 1 

# 抽出した行の先頭行を文字列にして取り出します
$line = Get-Content $InputFile | Select-String "`taction:enum end`t" | Select-Object -First 1 |Foreach-Object ToString

# 先頭行をタブで分割し、コロンの前だけを取り出します
$items=$line.split("`t");

for ( $i=0; $i -lt $items.Length; $i++ ){
	$s= ($items[$i]  -replace ":.*$", "")
	$items[$i] = $s
}
# タブ区切りに戻してヘッダ行を出力
$items -join "`t"


#
# ----- STEP 2 ----- データ行の処理
#

# 抽出した行でループしてデータ行を出力します
#  タブ区切りされた各フィールドの、最初のコロン以降だけを出力します
Get-Content $InputFile | Select-String  "`taction:enum end`t|`taction:outstanding folder`t" |
 Foreach { $_ -replace "^[^:]+:",""} |
 Foreach { $_ -replace "`t[^:]+:", "`t" }