以前
MS-DOS世代なのですが・・・その・・・バッチ処理苦手で・・・。
フォルダごとのファイルを数えたい年頃ってあるだろ? - スナックelve 本店
と書いていて、id:narwhalがコメントくれていた(がその後削除されていた(;´Д`))。さんきゅー!!
narwhal氏はもう解決済みだねって感じでコメント消していたのだけど、コマンドがよくわからないのは解決していないのだったwww
というわけで、お勉強です。
コマンドはパイプ「|」ってので繋ぐことができる。
dir /s /a-d | findstr "ファイル ディレクトリ"
は
dir /s /a-d
と
findstr "ファイル ディレクトリ"
がくっついてる、と・・・なんか分かるようなわからんような。
dir /s /a-d
これは分かるのよ。よく使うコマンドだし。
サブディレクトリも含めてファイルを出力してーってんだよね。
その結果が
findstr "ファイル ディレクトリ"
に渡されて、「ファイル」「ディレクトリ」を含む文字列を出力してくれ、と。
一回出力をファイルに書き出してみると分かりやすいといわれた。
dir /s /a-d
で
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 00B3-3ACD です● c:\test のディレクトリ
2018/04/29 17:57 0 list.txt
● 1 個のファイル 0 バイト● c:\test\test(1) のディレクトリ
2018/04/29 17:55 0 testFile1.txt
● 1 個のファイル 0 バイト● c:\test\test(2) のディレクトリ
2018/04/29 17:55 0 testFile1.txt
2018/04/29 17:55 0 testFile2.txt
● 2 個のファイル 0 バイト● c:\test\test(3) のディレクトリ
2018/04/29 17:55 0 testFile1.txt
2018/04/29 17:55 0 testFile2.txt
2018/04/29 17:55 0 testFile3.txt
● 3 個のファイル 0 バイト● c:\test\test(4) のディレクトリ
2018/04/29 17:55 0 testFile1.txt
2018/04/29 17:55 0 testFile2.txt
2018/04/29 17:55 0 testFile3.txt
2018/04/29 17:55 0 testFile4.txt
● 4 個のファイル 0 バイト● ファイルの総数:
● 11 個のファイル 0 バイト
● 0 個のディレクトリ 346,291,245,056 バイトの空き領域
●は自分でつけた。これが出力されるって事かな?
c:\test のディレクトリ
1 個のファイル 0 バイト
c:\test\test(1) のディレクトリ
1 個のファイル 0 バイト
c:\test\test(2) のディレクトリ
2 個のファイル 0 バイト
c:\test\test(3) のディレクトリ
3 個のファイル 0 バイト
c:\test\test(4) のディレクトリ
4 個のファイル 0 バイト
ファイルの総数:
11 個のファイル 0 バイト
0 個のディレクトリ 346,289,926,144 バイトの空き領域
φ(゚Д゚ )フムフム…
これはファイルを「数える」というより表示からファイルの総数を出力してる行を抜き出してる感じなんだな。数値より文字列っぽい感じ?
dir /a-d /s /b | find /c /v ""
このパターンだと
dir /a-d /s /b
で、そのフォルダはイカのフォルダを含むファイルの一覧を出力
c:\test\list.txt
c:\test\test(1)\testFile1.txt
c:\test\test(2)\testFile1.txt
c:\test\test(2)\testFile2.txt
c:\test\test(3)\testFile1.txt
c:\test\test(3)\testFile2.txt
c:\test\test(3)\testFile3.txt
c:\test\test(4)\testFile1.txt
c:\test\test(4)\testFile2.txt
c:\test\test(4)\testFile3.txt
c:\test\test(4)\testFile4.txt
find /c /v ""
は、このオプションで空行以外の数を数える、になるのかな?
11
これは数えてる感じか。
(´ヘ`;)ウーム…分かったような気はするけどじゃぁ、何かコマンドを使って狙った出力を出せるかといわれると自信ないなぁ。
for文も独特だった気がするんだよなぁw
参考:
開発のあいまに: 特定フォルダ配下の、フォルダ毎に、ファイル数とサイズを表示するWindowsコマンド
ファイル数をカウントする