Czy istnieje narzędzie wiersza polecenia systemu Windows do wyświetlania największych plików przekraczających określony rozmiar w podkatalogach?


Odpowiedzi:


29
forfiles /P D:\ /M *.* /S /D +"01/17/2012"  /C "cmd /c if @fsize gtr 209715200 echo @path @fsize @fdate @ftime"

skanuje D: \ i jego podkatalogi, szuka wszystkich plików, których daty ostatniej modyfikacji są większe niż „17-JAN-2012” i których rozmiary są większe lub równe 200 MB, a następnie drukuje ich szczegóły.

Pliki forfile są dołączane do niektórych serwerów Windows, ale domyślnie nie do Windows XP. Możesz go wyodrębnić z zestawu „Windows Server 2003 Resource Kit” pod adresem http://www.microsoft.com/download/en/details.aspx?id=17657 (choć, jak mówi, jest przeznaczony dla systemu Windows Server, działa na Win XP bez problemów).


Znakomity - zrobił to, co chciałem (jak tylko ustaliłem datę dla Wielkiej Brytanii 17.01.2012). Dzięki.
Umber Ferrule

6

To brzmi jak zadanie dla PowerShell

get-childitem

Przejdź do odpowiedniego katalogu, sprawdź właściwości za pomocą:

get-childitem | get-member

długość i pełna nazwa wyglądają interesująco, na przykład:

get-childitem |ft fullname, length -auto

Po opanowaniu podstaw spróbuj filtrować za pomocą instrukcji where.

get-childitem | where-object {$_.length -gt 10000} |ft fullname, length -auto

Eksperymentuj z 100000


Użyj polecenia Get-ChildItem -recurse, aby wyszukiwać rekurencyjnie
themadmax

3

Port narzędzia Linux na UnxUtils zawiera Linux find polecenie.

Powinieneś zmienić nazwę find.exe na coś innego, na przykład xfind.exe, ponieważ find to wbudowana funkcja w wierszu polecenia systemu Windows. Następnie możesz znaleźć cały plik większy niż 1000000 bajtów według:

xfind katalog -rozmiar +1000000 -print

Oto dokument dotyczący komendy Linux find , ale nie wiem, jak dokładnie została zaimplementowana w UnxUtils i dla której wersji find.


wierzę GnuWin32 jest bardziej up-to-date: gnuwin32.sourceforge.net ... Plus zawsze Cygwin: cygwin.com
szarlatan Kichot

@ ~ quack: Masz rację, tyle że pakiet FileUtils w GnuWin32 wydaje się dość skomplikowany w instalacji, wymagając sporo plików.
harrymc

Słusznie. osobiście jestem użytkownikiem cygwina. i wolę aktualizować na bieżąco niż proste w instalacji. ale dziękuję za wyjaśnienie twojego rozumowania.
quack quixote

2

Weźmy Console LE (którą ostatnio bardzo często polecam), darmowy zamiennik cmd.exe z wieloma dodatkowymi funkcjami, ma takie polecenie:PDIR

pdir /s /(fpn z) /[s10485760,]
  • /s oznacza rekurencyjnie, uruchom polecenie z katalogu, który chcesz przeszukać.
  • /(fpn z) jest formatem wyświetlania wyników, tutaj: fullpathfullname size
  • /[s10485760,] oznacza rozmiar = 10 MB lub większy

1

Robi to polecenie find narzędzi cygwin . Dla twojego wymagania

znajdź pełne ścieżki plików w drzewie katalogów, które przekraczają określony rozmiar (powiedzmy 10 MB).

daje to wynik:

znajdź -rozmiar + 10M -typ f -printf "% p% s \ n"

-size +10Mdaje ci „przedmioty” większe niż 10 megabajtów

-type f daje tylko pliki

-printfwypisuje znalezione pliki, %pjest ścieżką, %sma rozmiar (w bajtach) i \njest znakiem nowej linii.


1

Właśnie natrafiłem na narzędzie wiersza polecenia, Disksum , które wydaje się podobne do diruse , ale daje dwie formy danych wyjściowych:

  • posortowane według liczby plików według katalogu (rosnąco)
  • posortowane według rozmiaru katalogu (rosnąco)

1

Uważam, że użycie tego rozwiązania jest dokładniejsze z opisem:

Pobierz plik sfk.exe z wiersza polecenia na http://sourceforge.net/projects/swissfileknife/files/

Użyj tego w ten sposób

skf.exe list -big

Przykładowe dane wyjściowe (w skrócie):

[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

Jeśli chcesz tylko 10 największych większych plików, użyj:

skf.exe list -big=10

Możesz go dostosować, wykonując dalsze instrukcje z: http://stahlworks.com/dev/index.php?tool=list


Cudowna odpowiedź, odnalazłem ją tutaj; softwarerecs.stackexchange.com/questions/30824/…
DankyNanky 27.04.16

-2

Wiem, że pytanie dotyczy wiersza polecenia, ale to pytanie wciąż pojawia się w Google, więc dodajmy kolejny prosty sposób - za pośrednictwem Eksploratora.

  1. otwórz lokalizację (dysk lub folder), w której chcesz szukać dużych plików w Eksploratorze Windows
  2. w prawym górnym polu wyszukiwania wpisz „rozmiar: gigantyczny” (pole automatycznie zasugeruje składnię i inne możliwe opcje)

Pytanie szukało odpowiedzi z wiersza poleceń.
John

To jest dobra i ważna odpowiedź. Nie należy go lekceważyć.
zar
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.