ฉันต้องการใช้บรรทัดคำสั่งของ Windows เพื่อคำนวณขนาดของไฟล์ทั้งหมดในโฟลเดอร์และโฟลเดอร์ย่อย ปกติแล้วฉันจะทำสิ่งนี้โดยการคลิกขวาที่โฟลเดอร์และคลิกที่ "Properties" แต่ฉันต้องการที่จะทำมันในบรรทัดคำสั่ง
ฉันสามารถใช้คำสั่งใดได้บ้าง
ฉันต้องการใช้บรรทัดคำสั่งของ Windows เพื่อคำนวณขนาดของไฟล์ทั้งหมดในโฟลเดอร์และโฟลเดอร์ย่อย ปกติแล้วฉันจะทำสิ่งนี้โดยการคลิกขวาที่โฟลเดอร์และคลิกที่ "Properties" แต่ฉันต้องการที่จะทำมันในบรรทัดคำสั่ง
ฉันสามารถใช้คำสั่งใดได้บ้าง
คำตอบ:
คุณจะต้องใช้dir /a/s
เพื่อให้มันรวมทุกไฟล์รวมถึงระบบและไฟล์ที่ซ่อนอยู่ นี่จะทำให้คุณมีขนาดรวมที่คุณต้องการ
คุณสามารถใช้ PowerShell!
$totalsize = [long]0
Get-ChildItem -File -Recurse -Force -ErrorAction SilentlyContinue | % {$totalsize += $_.Length}
$totalsize
การทำซ้ำนี้จะทำซ้ำผ่านไดเรกทอรีปัจจุบันทั้งหมด (ไม่สนใจไดเรกทอรีที่ไม่สามารถป้อนได้) และสรุปขนาดของแต่ละไฟล์ จากนั้นจะพิมพ์ขนาดทั้งหมดเป็นไบต์
กระชับซับหนึ่ง:
$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize
บนเครื่องของฉันดูเหมือนว่าจะเร็วกว่า a เล็กน้อยdir /s /a
เนื่องจากมันไม่ได้พิมพ์ข้อมูลของวัตถุแต่ละชิ้นไปที่หน้าจอ
วิธีเรียกใช้จากพรอมต์คำสั่งปกติ:
powershell -command "$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize"
ไม่มีคำสั่งดังกล่าวสร้างขึ้นใน DOS หรือ Windows Command Line บน Linux มีคำสั่งdu
( D isk U sage)
กลุ่มเครื่องมือ Sysinternals ของ Microsoft มีเครื่องมือที่เทียบเท่าdu
กับ Linux มันเรียกว่ายัง du
;)
du -sh <directory>
เป็นของฉันไปที่ Linux (หรือ windows w / du ผ่าน git) เพื่อแสดงสรุปขนาดมนุษย์สามารถอ่านได้ของไดเรกทอรี
สามารถคำนวณขนาดโฟลเดอร์ด้วยชุดสคริปต์ต่อไปนี้:
@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
คุณยังสามารถใช้อรรถประโยชน์บรรทัดคำสั่งdiruse.exe
จาก Kit ทรัพยากรของ Windows 2000 ได้ที่นี่:
https://support.microsoft.com/en-us/kb/927229
มันทำงานบน Windows 8.1 ได้โดยไม่มีปัญหาใด ๆ
dir /s
จะแสดงรายการขนาดของไฟล์ทั้งหมดและไฟล์ในโฟลเดอร์ย่อยทั้งหมด
CMD line
ผมทราบดีว่าคำถามนี้ถามสำหรับการวิเคราะห์ขนาดไฟล์โดยใช้ แต่ถ้าคุณเปิดให้ใช้PowerQuery (Excel add-in, versions 2010+)
แล้วคุณสามารถสร้างการวิเคราะห์ขนาดไฟล์ที่น่าสนใจ
สคริปต์ด้านล่างสามารถวางลงในคิวรีว่างได้ สิ่งเดียวที่คุณต้องทำคือเพิ่มพารามิเตอร์ชื่อ "paramRootFolderSearch" จากนั้นเพิ่มค่าของคุณเช่น "C: \ Users \ bl0040 \ Dropbox \" ผมใช้วิธีนี้เป็นคู่มือ: MSSQLTips: ดึงขนาดไฟล์จากระบบไฟล์โดยใช้พลังงานแบบสอบถาม
แบบสอบถามนี้ให้ข้อมูลสำหรับฉันในการสร้างตารางสาระสำคัญ ( [Folder Root]> [Folder Parent (1-2)], [Name]
) และฉันสามารถระบุไฟล์สองสามไฟล์ที่ฉันสามารถลบได้ซึ่งทำให้มีพื้นที่ว่างมากในไดเรกทอรีของฉัน
นี่คือสคริปต์ M สำหรับ 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)"
ไฟล์โฟลเดอร์ Size_xlsx.png
ไฟล์โฟลเดอร์ Size_xlsx2.png
เพียงแค่เปิดเพาเวอร์เชลล์และdu -sh <directory>
ไม่จำเป็นต้องติดตั้งบุคคลที่สามหรือ sys-internals ภายใน Power-shell คุณสามารถเรียกใช้ Linux อย่างง่ายเช่นคำสั่งเช่นคำสั่ง ls หรือ du สวิตช์บางอย่างจะไม่ทำงานเหมือนls -alt
จะเกิดข้อผิดพลาดเนื่องจาก PowerShell ไม่ทราบว่า -alt คืออะไร ...
du
คำสั่งให้ใช้อย่างแน่นอน
คำสั่ง "dir" จัดเตรียมขนาดไฟล์วันที่แก้ไขล่าสุดและเวลาของไดเร็กทอรีปัจจุบัน ก่อนอื่นให้ลองย้ายไปยังไดเรกทอรีที่คุณต้องการดูขนาดการใช้cd
คำสั่งจากนั้นใช้dir
คำสั่ง
C:\>dir
แสดงขนาดไฟล์วันที่แก้ไขล่าสุดและเวลาของไฟล์และไดเรกทอรีทั้งหมดในไดเรกทอรีที่คุณอยู่ในปัจจุบันตามลำดับตัวอักษร