cmd ファイルのフルパスとサイズを一覧表示

C:\Windows\security のファイルリストをフルパスで表示しつつファイルサイズを表示する例。
dir コマンドでフルパスにするとファイルサイズがなくて困ったから。
“delims=” にしておかないとファイル名にスペースが含まれていたときにしくじる。ファイル名とファイルサイズの区切り文字は | (パイプ) にしてみた。パイプを echo すんのに一番苦労したかも (^|)。

C:\>echo off & ( for /f "delims=" %i in (' dir /a /s /b C:\Windows\security ') do echo %i^|%~zi ) & echo on
C:\Windows\security\ApplicationId|0
C:\Windows\security\audit|0
C:\Windows\security\database|4096
C:\Windows\security\logs|0
C:\Windows\security\templates|0
C:\Windows\security\ApplicationId\PolicyManagement|0
C:\Windows\security\ApplicationId\PolicyManagement\AppIdPolicy.xsd|13612
C:\Windows\security\database\edb.chk|8192
C:\Windows\security\database\edb.log|1048576
C:\Windows\security\database\edbres00001.jrs|1048576
C:\Windows\security\database\edbres00002.jrs|1048576
C:\Windows\security\database\secedit.sdb|1056768
C:\Windows\security\logs\scecomp.old|1450
C:\Windows\security\logs\scesetup.log|1145122

最後に気付いたけどサイズが 0 = ディレクトリと思っていたけど、これだと空ファイルの可能性もあるね。
ファイルサイズだけでなく日付などの属性も付けることができる (参考文書を参照)。

参考文書

タイトルとURLをコピーしました