Eld*_*sis 116 windows command-line
在Windows中是否可以从命令行获取文件夹的大小而不使用任何第三方工具?
我想要在右键单击Windows资源管理器→属性中的文件夹时获得相同的结果.
Joe*_*oey 111
您可以递归地添加大小(以下是批处理文件):
@echo off
set size=0
for /r %%x in (folder\*) do set /a size+=%%~zx
echo %size% Bytes
Run Code Online (Sandbox Code Playgroud)
但是,这有几个问题因为cmd仅限于32位有符号整数运算.因此它将获得大于2 GiB的大小错误1.此外,它可能会多次计算符号链接和联结,因此它最多只是一个上限,而不是真正的大小(但是你会遇到任何工具的问题).
另一种方法是PowerShell:
Get-ChildItem -Recurse | Measure-Object -Sum Length
Run Code Online (Sandbox Code Playgroud)
或更短:
ls -r | measure -s Length
Run Code Online (Sandbox Code Playgroud)
如果你想要它更漂亮:
switch((ls -r|measure -s Length).Sum) {
{$_ -gt 1GB} {
'{0:0.0} GiB' -f ($_/1GB)
break
}
{$_ -gt 1MB} {
'{0:0.0} MiB' -f ($_/1MB)
break
}
{$_ -gt 1KB} {
'{0:0.0} KiB' -f ($_/1KB)
break
}
default { "$_ bytes" }
}
Run Code Online (Sandbox Code Playgroud)
您可以直接使用cmd:
powershell -noprofile -command "ls -r|measure -s Length"
Run Code Online (Sandbox Code Playgroud)
1我在批处理文件中有一个部分完成的bignum库,它至少可以获得任意精度的整数加法.我应该释放它,我猜:-)
Nir*_*uan 104
有一个内置的Windows工具:
dir /s 'FolderName'
Run Code Online (Sandbox Code Playgroud)
这将打印很多不必要的信息,但最终将是这样的文件夹大小:
Total Files Listed:
12468 File(s) 182,236,556 bytes
Run Code Online (Sandbox Code Playgroud)
如果需要添加隐藏文件夹/a.
Ste*_*eve 64
我建议从Microsoft提供的Sysinternals Suite下载实用程序DU,网址为 http://technet.microsoft.com/en-us/sysinternals/bb896651
usage: du [-c] [-l <levels> | -n | -v] [-u] [-q] <directory>
-c Print output as CSV.
-l Specify subdirectory depth of information (default is all levels).
-n Do not recurse.
-q Quiet (no banner).
-u Count each instance of a hardlinked file.
-v Show size (in KB) of intermediate directories.
C:\SysInternals>du -n d:\temp
Du v1.4 - report directory disk usage
Copyright (C) 2005-2011 Mark Russinovich
Sysinternals - www.sysinternals.com
Files: 26
Directories: 14
Size: 28.873.005 bytes
Size on disk: 29.024.256 bytes
Run Code Online (Sandbox Code Playgroud)
在此期间,请查看其他实用程序.它们可以为每个Windows Professional节省大量时间
fri*_*zik 35
Oneliner:
powershell -command "$fso = new-object -com Scripting.FileSystemObject; gci -Directory | select @{l='Size'; e={$fso.GetFolder($_.FullName).Size}},FullName | sort Size -Descending | ft @{l='Size [MB]'; e={'{0:N2} ' -f ($_.Size / 1MB)}},FullName"
Run Code Online (Sandbox Code Playgroud)
仅限Powershell:
$fso = new-object -com Scripting.FileSystemObject
gci -Directory `
| select @{l='Size'; e={$fso.GetFolder($_.FullName).Size}},FullName `
| sort Size -Descending `
| ft @{l='Size [MB]'; e={'{0:N2} ' -f ($_.Size / 1MB)}},FullName
Run Code Online (Sandbox Code Playgroud)
这应该产生以下结果:
Size [MB] FullName
--------- --------
580,08 C:\my\Tools\mongo
434,65 C:\my\Tools\Cmder
421,64 C:\my\Tools\mingw64
247,10 C:\my\Tools\dotnet-rc4
218,12 C:\my\Tools\ResharperCLT
200,44 C:\my\Tools\git
156,07 C:\my\Tools\dotnet
140,67 C:\my\Tools\vscode
97,33 C:\my\Tools\apache-jmeter-3.1
54,39 C:\my\Tools\mongoadmin
47,89 C:\my\Tools\Python27
35,22 C:\my\Tools\robomongo
Run Code Online (Sandbox Code Playgroud)
Cus*_*dio 11
如果您的计算机中安装了git(越来越常见),只需打开MINGW32并键入: du folder
小智 8
这是我编写的 powershell 代码,用于列出当前目录下所有文件夹的大小和文件数。您可以根据需要随意重复使用或修改。
$FolderList = Get-ChildItem -Directory
foreach ($folder in $FolderList)
{
set-location $folder.FullName
$size = Get-ChildItem -Recurse | Measure-Object -Sum Length
$info = $folder.FullName + " FileCount: " + $size.Count.ToString() + " Size: " + [math]::Round(($size.Sum / 1GB),4).ToString() + " GB"
write-host $info
}
Run Code Online (Sandbox Code Playgroud)
我建议使用https://github.com/aleksaan/diskusage实用程序.非常简单,乐于助人.并且非常快.
只需输入命令shell即可
diskusage.exe -path 'd:/go; d:/Books'
Run Code Online (Sandbox Code Playgroud)
并获取按大小排列的文件夹列表
1.| DIR: d:/go | SIZE: 325.72 Mb | DEPTH: 1 2.| DIR: d:/Books | SIZE: 14.01 Mb | DEPTH: 1
这个例子在HDD上执行了272ms.
您可以增加要分析的子文件夹的深度,例如:
diskusage.exe -path 'd:/go; d:/Books' -depth 2
Run Code Online (Sandbox Code Playgroud)
并且不仅为选定的文件夹而且为其子文件夹获取大小
1.| DIR: d:/go | SIZE: 325.72 Mb | DEPTH: 1 2.| DIR: d:/go/pkg | SIZE: 212.88 Mb | DEPTH: 2 3.| DIR: d:/go/src | SIZE: 62.57 Mb | DEPTH: 2 4.| DIR: d:/go/bin | SIZE: 30.44 Mb | DEPTH: 2 5.| DIR: d:/Books/Chess | SIZE: 14.01 Mb | DEPTH: 2 6.| DIR: d:/Books | SIZE: 14.01 Mb | DEPTH: 1 7.| DIR: d:/go/api | SIZE: 6.41 Mb | DEPTH: 2 8.| DIR: d:/go/test | SIZE: 5.11 Mb | DEPTH: 2 9.| DIR: d:/go/doc | SIZE: 4.00 Mb | DEPTH: 2 10.| DIR: d:/go/misc | SIZE: 3.82 Mb | DEPTH: 2 11.| DIR: d:/go/lib | SIZE: 358.25 Kb | DEPTH: 2
*服务器上的3.5Tb扫描3m12s
| 归档时间: |
|
| 查看次数: |
443136 次 |
| 最近记录: |