2014-11-07 04:12:42 +0000 2014-11-07 04:12:42 +0000
39
39

Jak mogę sprawdzić rozmiar folderu z linii poleceń Windows?

Chcę użyć linii poleceń Windows do obliczenia rozmiaru wszystkich plików w folderze i podfolderze. Normalnie zrobiłbym to klikając prawym przyciskiem myszy na folder i klikając “Właściwości”, ale chcę móc to zrobić w linii poleceń.

Jakiego polecenia mogę użyć?

Odpowiedzi (10)

35
35
35
2014-11-07 06:34:25 +0000

Będziesz chciał używać dir /a/s tak, aby zawierał każdy plik, w tym system i pliki ukryte. W ten sposób uzyskasz całkowity rozmiar, jaki sobie zażyczysz.

14
14
14
2016-12-07 17:10:59 +0000

Możesz użyć PowerShell!

$totalsize = [long]0
Get-ChildItem -File -Recurse -Force -ErrorAction SilentlyContinue | % {$totalsize += $_.Length}
$totalsize

Powtarza się to przez cały aktualny katalog (ignorując katalogi, które nie mogą być wprowadzone) i podsumowuje rozmiary każdego pliku. Następnie wypisuje całkowity rozmiar w bajtach.

Zagęszczony jeden wiersz:

$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize

Na moim komputerze wydaje się to nieco szybsze niż w przypadku dir /s /a, ponieważ nie drukuje informacji o każdym obiekcie na ekranie.

Aby uruchomić go z normalnego polecenia:

powershell -command "$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize"
7
7
7
2015-03-04 09:35:54 +0000

~~~ Nie ma takiej komendy wbudowanej w DOS lub Windows Command Line.~~~ W Linuksie jest komenda du ( D isk U sage).

Linia narzędzi Sysinternals firmy Microsoft ma narzędzie, które jest w przybliżeniu równoważne du w Linuksie. Nazywa się ono również du. ;)

2
2
2
2016-01-13 08:21:30 +0000

Wielkość folderu można obliczyć za pomocą następującego skryptu wsadowego:

@echo off
setlocal enabledelayedexpansion

set size=0
for /f "tokens=*" %%x in ('dir /s /a /b %1') do set /a size+=%%~zx
echo.!size!

endlocal
2
2
2
2016-02-15 12:14:54 +0000

Możesz nadal korzystać z narzędzia wiersza poleceń diruse.exe z zestawu zasobów Windows 2000 dostępnego tutaj: https://support.microsoft.com/en-us/kb/927229

Działa on bez żadnych problemów na Windows 8.1.

1
1
1
2014-11-07 06:24:08 +0000

dir /s Wymieni rozmiary wszystkich plików i pliki we wszystkich podfolderach

1
1
1
2019-03-07 22:38:22 +0000

Zdaję sobie sprawę, że to pytanie zostało zadane do analizy rozmiaru pliku za pomocą CMD line. Jeśli jednak jesteś otwarty na użycie PowerQuery (Excel add-in, versions 2010+), możesz stworzyć całkiem przekonywującą analizę rozmiaru pliku.

Poniższy skrypt można wkleić do Pustego zapytania; Jedyne co musisz zrobić, to dodać parametr o nazwie “paramRootFolderSearch”, a następnie dodać swoją wartość, np. Użyłem tego jako przewodnika: MSSQLTips: Retrieve file sizes from the file system using Power Query .

To zapytanie dostarczyło mi danych do stworzenia tabeli przestawnej ([Folder Root]> [Folder Parent (1-2)], [Name]), a ja byłem w stanie zidentyfikować kilka plików, które mogłem usunąć, co wyczyściło wiele miejsca w moim katalogu.

Tutaj jest skrypt M dla PowerQuery :

let
// Parmameters:
    valueRootFolderSearch = paramRootFolderSearch,
    lenRootFolderSearch = Text.Length(paramRootFolderSearch),
//

    Source = Folder.Files(paramRootFolderSearch),
    #"Removed Other Columns" = Table.RenameColumns(
Table.SelectColumns(Source,{"Name", "Folder Path", "Attributes"})
,{{"Folder Path", "Folder Path Full"}}),
    #"Expanded Attributes" = Table.ExpandRecordColumn(#"Removed Other Columns", "Attributes", {"Content Type", "Kind", "Size"}, {"Content Type", "Kind", "Size"}),
    #"fx_Size(KB)" = Table.AddColumn(#"Expanded Attributes", "Size(KB)", each [Size]/1024),
    #"fx_Size(MB)" = Table.AddColumn(#"fx_Size(KB)", "Size(MB)", each [Size]/1048576),
    #"fx_Size(GB)" = Table.AddColumn(#"fx_Size(MB)", "Size(GB)", each [Size]/1073741824),
    fx_FolderRoot = Table.AddColumn(#"fx_Size(GB)", "Folder Root", each valueRootFolderSearch),
    helper_LenFolderPathFull = Table.AddColumn(fx_FolderRoot, "LenFolderPathFull", each Text.Length([Folder Path Full])),
    fx_FolderDepth = Table.AddColumn(helper_LenFolderPathFull, "Folder Depth", each Text.End([Folder Path Full], [LenFolderPathFull]-lenRootFolderSearch+1)),
    #"helperList_ListFoldersDepth-Top2" = Table.AddColumn(fx_FolderDepth, "tmp_ListFoldersDepth", each List.Skip(
  List.FirstN(
    List.RemoveNulls(
      Text.Split([Folder Depth],"\")
    )
  ,3)
,1)),
    #"ListFoldersDepth-Top2" = Table.TransformColumns(#"helperList_ListFoldersDepth-Top2", 
{"tmp_ListFoldersDepth", each "\" & Text.Combine(List.Transform(_, Text.From), "\") & "\"
, type text}),
    #"Select Needed Columns" = Table.SelectColumns(#"ListFoldersDepth-Top2",{"Name", "Folder Root", "Folder Depth", "tmp_ListFoldersDepth", "Content Type", "Kind", "Size", "Size(KB)", "Size(MB)", "Size(GB)"}),
    #"rename_FoldersParent(1-2)" = Table.RenameColumns(#"Select Needed Columns",{{"tmp_ListFoldersDepth", "Folders Parent (1-2)"}})
in
    #"rename_FoldersParent(1-2)"

Folder Rozmiary plików _xlsx.png

Folder Rozmiary plików _xlsx2.png

1
1
1
2019-12-07 07:30:53 +0000

Microsoft oferuje narzędzie o nazwie Disk Usage, które tworzy raport CSV.

Du (użycie dysku) raportuje użycie przestrzeni dyskowej dla określonego katalogu. Domyślnie zwraca katalogi, aby pokazać całkowity rozmiar katalogu i jego podkatalogów.

Oto jak go używać:

Użycie: du [-c[t]] [-l | -n | -v] [-u] [-q] Parametr Opis

Gdzie opcje są:

-c Print output as CSV. Use -ct for tab delimiting.
-l Specify subdirectory depth of information (default is all levels).
-n Do not recurse.
-v Show size (in KB) of intermediate directories.
-u Count each instance of a hardlinked file.
-q Quiet (no banner).

Wyjście CSV jest sformatowane jako:

Ścieżka, CurrentFileCount, CurrentFileSize, FileCount, DirectoryCount, DirectorySize

Oto aktualny oficjalny link .

0
0
0
2017-11-30 14:17:53 +0000

Wystarczy otworzyć obudowę zasilacza i zrobić du -sh <directory> nie trzeba instalować 3rd party lub sys-internals. W Power-shell możesz uruchomić kilka prostych linuksowych komend, takich jak ls lub du commands, niektóre z przełączników nie będą działać jak ls -alt popełni błąd, ponieważ powershell nie wie co to jest -alt…

-2
-2
-2
2014-11-07 05:38:57 +0000

Polecenie “dir” podaje rozmiar pliku, datę i godzinę ostatniej modyfikacji bieżącego katalogu. Najpierw spróbuj przejść do katalogu, który chcesz sprawdzić pod kątem rozmiaru pliku przy użyciu polecenia cd, a następnie użyj polecenia dir.

C:\>dir

Wyświetla rozmiar pliku, datę i czas ostatniej modyfikacji wszystkich plików i katalogów w katalogu, w którym aktualnie się znajdujesz, w porządku alfabetycznym.