特定のサイズ(たとえば10MB)を超えるディレクトリツリー内のファイルの完全パスを検索できるようにしたい。
現在、Microsoftの Diruse ( Windows XP Service Pack 2 Support Tools )の一部を認識しています。これは、私がやりたいことexceptファイルではなくディレクトリのサイズのみを一覧表示します。
forfiles /P D:\ /M *.* /S /D +"01/17/2012" /C "cmd /c if @fsize gtr 209715200 echo @path @fsize @fdate @ftime"
d:\とそのサブディレクトリをスキャンし、最終更新日が「17-JAN-2012」よりも大きく、サイズが200MB以上のすべてのファイルを探し、詳細を出力します。
forfilesは一部のWindowsサーバーに含まれていますが、Windows XPではデフォルトでは含まれていません。 http://www.Microsoft.com/download/en/details.aspx?id=17657 にある「Windows Server 2003リソースキット」のダウンロードからそれを抽出できます(ただし、Windows向けとのことです)サーバー、それは勝利XP問題なく)で実行されます。
これはPowerShellの仕事のように聞こえます
get-childitem
問題のディレクトリに移動し、次のコマンドでプロパティを確認します。
get-childitem | get-member
たとえば、lengthとFullNameは興味深いものです。
get-childitem |ft fullname, length -auto
基本をマスターしたら、whereステートメントでフィルタリングしてみてください。
get-childitem | where-object {$_.length -gt 10000} |ft fullname, length -auto
100000で実験する
Take Command Console LE (私は最近、多くのことをお勧めします)、たくさんのcmd.exeの無料の代替品追加機能のコマンド、そのためのコマンドがあります:PDIR
_pdir /s /(fpn z) /[s10485760,]
_
/s
_は、再帰的に、検索するディレクトリからコマンドを実行することを意味します。/(fpn z)
は、結果を表示するための形式です。ここでは、_fullpathfullname size
_です。/[s10485760,]
_は、サイズ= 10 MB以上を意味しますこのソリューションを使用すると、説明がより正確になると思います:
http://sourceforge.net/projects/swissfileknife/files/ からコマンドライン実行可能ファイルsfk.exeをダウンロードします。
このように使う
skf.exe list -big
出力例(省略):
[listing 50 of 78 files by size:]
3951 mens\noname_30.mht
3996 mens\noname_14.mht
3996 mens\noname_25.mht
4060 mens\noname_24.mht
4263 mens\noname_31.mht
4701 mens\noname_1.mht
14568 Thumbnail Restore.Zip
45056 netmeter.exe
[...]
12337752 rktools.exe
16826024 sp35378.exe
16926496 jre-6u30-windows-i586.exe
19480227 SugarCE-6.2.4.Zip
21073936 vlc-1.1.11-win32.exe
22083184 EasyPHP-5.3.8.1-setup.exe
25517642 MPSOFTWARE.phpDesigner.v8.0.0.145-CRD.rar
31085033 phpdesigner8usb.Zip
48835640 netbeans 7.exe
58900704 ZendServer-CE-php-5.2.17-5.6.0-Windows_x86.exe
491538432 53400105.iso
上位10個の大きなファイルのみが必要な場合は、次を使用します。
skf.exe list -big=10
次の手順に従ってさらにカスタマイズできます。 http://stahlworks.com/dev/index.php?tool=list
cygwin ユーティリティのfindコマンドがこれを行います。あなたの要件について
特定のサイズ(たとえば10MB)を超えるディレクトリツリー内のファイルの完全パスを検索します。
これは結果を与えます:
find -size + 10M -type f -printf "%p%s\n"
-size +10M
は、「オブジェクト」10メガバイトよりも大きい
-type f
はファイルのみを提供します
-printf
は見つかったファイルを出力します、%p
はパス、%s
はサイズ(バイト単位)であり、\n
は改行です。
コマンドラインツール Disksum で発生しました。これはdiruseに似ていますが、2つの形式があります。出力: