掲題の通り。コマンドプロンプトのdirコマンドで表示される"."、".."を除きたかったのであれこれやってみた。
何もしないとき↓
D:\Desktop\20170414>dir
ドライブ D のボリューム ラベルは ボリューム です
ボリューム シリアル番号は ****-**** です
D:\Desktop\20170414 のディレクトリ
2017/04/14 22:04 <DIR> .
2017/04/14 22:04 <DIR> ..
2017/04/14 22:18 142 ばっち.bat
2017/04/14 22:03 0 ふぁいる1.txt
2017/04/14 22:03 0 ふぁいる2.txt
2017/04/14 22:03 <DIR> ふぉるだー
3 個のファイル 142 バイト
3 個のディレクトリ 59,821,461,504 バイトの空き領域
D:\Desktop\20170414>
".",".."を除いて表示↓
dir | findstr /v /r "\.\.*$"
/v マッチしない行を表示
/r 検索文字列を正規表現として指定
"\.\.*$" 「.(.)で終わる」という正規表現
上記コマンドの実行結果↓
D:\Desktop\20170414>dir | findstr /v /r "\.\.*$"
ドライブ D のボリューム ラベルは ボリューム です
ボリューム シリアル番号は ****-**** です
D:\Desktop\20170414 のディレクトリ
2017/04/14 22:18 142 ばっち.bat
2017/04/14 22:03 0 ふぁいる1.txt
2017/04/14 22:03 0 ふぁいる2.txt
2017/04/14 22:03 <DIR> ふぉるだー
3 個のファイル 142 バイト
3 個のディレクトリ 59,821,461,504 バイトの空き領域
D:\Desktop\20170414>
「3個のディレクトリ」ということで、".",".."もカウントされちゃっていますがね...
応用編ということで、ディレクトリの数を数える↓
@ECHO OFF
REM
REM
for /f "usebackq tokens=* delims=," %%i in (`dir ^| findstr /v /r \.\.*$ ^| find /C "<DIR>"`) do (
echo %%i
)
PAUSE
上記コマンドの実行結果(ディレクトリ構成は上述の通り)↓
D:\Desktop\20170414>ばっち.bat
1
続行するには何かキーを押してください . . .
D:\Desktop\20170414>