16
A
回答
21
請嘗試以下
function Get-DirectorySize() {
param ([string]$root = $(resolve-path .))
gci -re $root |
?{ -not $_.PSIsContainer } |
measure-object -sum -property Length
}
這實際上產生了一下彙總對象將包括項目的計數。你可以只搶了總財產,雖然這將是長度
$sum = (Get-DirectorySize "Some\File\Path").Sum
編輯的總和爲什麼這項工作?
讓我們按照管道的組成部分對其進行細分。 gci -re $root
命令將遞歸地從起始$root
目錄中獲取所有項目,然後將它們推送到管道中。因此,$root
下的每個文件和目錄都將通過第二個表達式?{ -not $_.PSIsContainer }
。傳遞給此表達式的每個文件/目錄都可以通過變量$_
訪問。前面的?表示這是一個過濾器表達式,意思是隻保留滿足這個條件的管道中的值。 PSIsContainer方法將爲目錄返回true。所以實際上,過濾器表達式只保留文件值。最終的cmdlet度量對象將在流水線中剩餘的所有值上累加屬性Length的值。所以它本質上是調用Fileinfo.Length來獲取當前目錄下的所有文件(遞歸)並對這些值進行求和。
2
如果您對包含隱藏文件和系統文件的大小感興趣,那麼您應該在Get-ChildItem中使用-force參數。
2
這裏是快速的方法來獲得特定的文件擴展名大小:
(gci d:\folder1 -r -force -include *.txt,*.csv | measure -sum -property Length).Sum
1
感謝那些誰張貼在這裏。我通過知識來創造這個:
# Loops through each directory recursively in the current directory and lists its size.
# Children nodes of parents are tabbed
function getSizeOfFolders($Parent, $TabIndex) {
$Folders = (Get-ChildItem $Parent); # Get the nodes in the current directory
ForEach($Folder in $Folders) # For each of the nodes found above
{
# If the node is a directory
if ($folder.getType().name -eq "DirectoryInfo")
{
# Gets the size of the folder
$FolderSize = Get-ChildItem "$Parent\$Folder" -Recurse | Measure-Object -property length -sum -ErrorAction SilentlyContinue;
# The amount of tabbing at the start of a string
$Tab = " " * $TabIndex;
# String to write to stdout
$Tab + " " + $Folder.Name + " " + ("{0:N2}" -f ($FolderSize.Sum/1mb));
# Check that this node doesn't have children (Call this function recursively)
getSizeOfFolders $Folder.FullName ($TabIndex + 1);
}
}
}
# First call of the function (starts in the current directory)
getSizeOfFolders "." 0
相關問題
- 1. Powershell腳本獲取目錄樹的FullName
- 2. 獲取目錄大小
- 3. PHPSECLIB讀取目錄的總大小?
- 4. Powershell腳本活動目錄
- 5. 如何獲取目錄中文件的總計大小?
- 6. 的iOS - 獲取文件大小的總和目錄
- 7. 如何獲取C中子目錄的總大小?
- 8. 獲取UTF8的PowerShell腳本?
- 9. 獲取與門檻目錄大小
- 10. PHP - 獲取目錄的大小
- 11. 獲取目錄大小ssh2 php
- 12. Windows Phone - IsolatedStorage - 獲取目錄大小
- 13. 遞歸獲取目錄的大小
- 14. 獲取目錄中文件的大小
- 15. RoboCopy目錄使用PowerShell調整大小
- 16. PowerShell腳本複製按大小
- 17. Powershell獲取用戶擁有的文件的總大小
- 18. 記錄一個大的Powershell腳本
- 19. 獲取目錄動態與python腳本
- 20. bash - 獲取目錄腳本從
- 21. 獲取腳本存在的目錄
- 22. nAnt腳本需要獲取父目錄
- 23. F#FAKE獲取腳本目錄
- 24. PowerShell腳本記錄
- 25. Powershell腳本無法刪除目錄
- 26. 將目錄傳遞到powershell腳本
- 27. 總結目錄中的文件大小
- 28. Laravel - 計算目錄的總大小?
- 29. 腳本文件大小的總和
- 30. 在批處理文件中使用Powershell獲取當前目錄的總大小和計數時出錯
不錯。 (Get-DirectorySize「Some \ File \ Path」)。Sum/1mb或(Get-DirectorySize「Some \ File \ Path」)。Sum/1gb轉換爲megs或gigs。 – aphoria 2009-04-30 22:31:17