サブディレクトリ内の特定のサイズを超える最大ファイルを一覧表示するWindowsコマンドラインユーティリティはありますか?


17

特定のサイズ(10MBなど)を超えるディレクトリツリー内のファイルの完全なパスを検索できるようにしたい。

現在、MicrosoftのDiruseWindows XP Service Pack 2 Support Toolsの一部)を認識していますが、これはファイルではなくディレクトリサイズのみをリストすることを除いて、私が望むことをしいます。

回答:


29
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 Resource Kit」のダウンロードから抽出できます(Windows Server向けであると言うことは、Win XPで実行されます)問題なく)。


素晴らしい-これは私が望んでいたことをしました(英国の日付17/01/2012を修正するとすぐに)。ありがとう。
アンバーフェルール

6

これは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で実験する


Get-ChildItem -recurseを使用して再帰的に検索する
-themadmax

3

UnxUtilsのLinuxユーティリティポートには、Linuxのfindコマンドが含まれています

findはWindowsコマンドプロンプトの組み込み関数であるため、find.exeの名前をxfind.exeなどの別の名前に変更する必要があります。その後、次の方法で1000000バイトを超えるすべてのファイルを見つけることができます。

xfindディレクトリ-size +1000000 -print

Linuxコマンドfindのドキュメントを次に示しますが、UnxUtilsでどのように実装されたのか、どのバージョンのfindなのかはわかりません。


GnuWin32の方が最新だと思います:gnuwin32.sourceforge.net ...さらにCygwinが常にあります:cygwin.com
クワックキホーテ2009年

@〜quack:その通りです。GnuWin32のFileUtilsパッケージをインストールするのは非常に複雑で、かなりの数のファイルが必要です。
ハリーマック2009年

けっこうだ。私は個人的にはcygwinユーザーです。そして、私は簡単にインストールするよりも最新のものを好む傾向があります。しかし、あなたの推論を説明してくれてありがとう。
いんちきのキホーテ2009年

2

たくさんの追加機能を備えたcmd.exeの無料の代替品である Command Console LE(最近私はお勧めします)には、そのためのコマンドがあります:PDIR

pdir /s /(fpn z) /[s10485760,]
  • /s は、再帰的に、検索するディレクトリからコマンドを実行することを意味します。
  • /(fpn z) 結果を表示する形式は次のとおりです。 fullpathfullname size
  • /[s10485760,] サイズ= 10 MB以上を意味します

1

cygwinユーティリティのfindコマンドがこれを実行します。あなたの要件について

特定のサイズ(10MBなど)を超えるディレクトリツリー内のファイルのフルパスを検索します。

これにより結果が得られます。

find -size + 10M -type f -printf "%p%s \ n"

-size +10M10メガバイトより大きい「オブジェクト」を提供します

-type f ファイルのみを提供します

-printf見つかったファイル、%pパス、%sサイズ(バイト単位)、および\n改行を出力します。


1

私は、コマンドラインツール時に起こってきた、Disksumのに似ているようだ、diruseが、出力の二つの形式を与えます:

  • ディレクトリごとのファイル数でソート(昇順)
  • ディレクトリサイズでソート(昇順)

1

このソリューションを使用すると、説明がより正確になると思います:

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


素晴らしい答え、私はここでそれを参照しました。softwarerecs.stackexchange.com/questions/30824/…–
DankyNanky

-2

私は質問がコマンドラインに関するものであることを知っていますが、この質問はGoogleで引き続き出てくるので、別の簡単な方法を追加します-エクスプローラーを介して。

  1. Windowsエクスプローラーで大きなファイルを検索する場所(ディスク、またはフォルダー)を開きます。
  2. 右上の検索ボックスに「size:gigantic」と入力します(ボックスは構文およびその他の可能なオプションを自動的に提案します)

質問はコマンドラインの回答を探していました。
ジョン14年

これは適切で有効な返信です。落とされるべきではありません。
zar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.