Windowsコマンドラインを使用して、フォルダーおよびサブフォルダー内のすべてのファイルのサイズを計算します。通常、これはフォルダーを右クリックして[プロパティ]をクリックすることで行いますが、コマンドラインで実行できるようにしたいのです。
どのコマンドを使用できますか?
Windowsコマンドラインを使用して、フォルダーおよびサブフォルダー内のすべてのファイルのサイズを計算します。通常、これはフォルダーを右クリックして[プロパティ]をクリックすることで行いますが、コマンドラインで実行できるようにしたいのです。
どのコマンドを使用できますか?
回答:
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
私のマシンでは、これはdir /s /a
各オブジェクトの情報を画面に出力しないため、aよりもわずかに速いようです。
通常のコマンドプロンプトから実行するには:
powershell -command "$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize"
DOSまたはWindowsコマンドラインには、このようなコマンドは組み込まれていません。Linuxにはdu
(D isk U sage)コマンドがあります。
MicrosoftのSysinternalsのツールラインには、du
Linux とほぼ同等のツールがあります。とも呼ばれdu
ます。;)
du -sh <directory>
Linux(またはgitを介したduを使用したWindows)で、人間が読めるディレクトリサイズの概要を表示します。
diruse.exe
ここから入手できるWindows 2000リソースキットのコマンドラインユーティリティを引き続き使用できます。
https://support.microsoft.com/en-us/kb/927229
Windows 8.1でも問題なく動作します。
私はこの質問がファイルサイズ分析を求めていることを理解していますCMD line
。しかし、もしあなたが使用することにオープンなら、あなたはPowerQuery (Excel add-in, versions 2010+)
かなり魅力的なファイルサイズ分析を作成できます。
以下のスクリプトは、空のクエリに貼り付けることができます。必要なことは、「paramRootFolderSearch」という名前のパラメーターを追加してから、「C:\ Users \ bl0040 \ Dropbox \」などの値を追加することだけです。これをガイドとして使用しました:MSSQLTips:Power Queryを使用してファイルシステムからファイルサイズを取得します。
このクエリにより、ピボットテーブル([Folder Root]> [Folder Parent (1-2)], [Name]
)を作成するためのデータが提供され、削除できるいくつかのファイルを特定することができました。これにより、ディレクトリ内の多くのスペースがクリアされました。
PowerQueryのMスクリプトは次のとおりです。
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)"
フォルダーファイルサイズ_xlsx.png
フォルダーファイルサイズ_xlsx2.png
電源シェルを開くだけで、du -sh <directory>
サードパーティまたはsys-internalsをインストールする必要はありません。Power-shell内では、lsやduコマンドなどのコマンドのような単純なLinuxを実行できますls -alt
。Powershellは-altが何であるかを知らないため、一部のスイッチはエラーのように動作しません。
du
使用していますが、使用できるコマンドはまったくありません