我正在一家軟件公司工作。我用批處理文件來獲取使用dir和du的文件夾大小,但是它在dir中花了1秒,在du花費了600毫秒來計算5GB的文件夾大小。但我希望產品更快。那麼有沒有可以更快執行任務的命令行支持的命令或工具?命令可以是任何類型(BAT,VBS,PowerShell的....)使用dir或du命令獲取文件夾大小的命令或工具
預先感謝您的....
我正在一家軟件公司工作。我用批處理文件來獲取使用dir和du的文件夾大小,但是它在dir中花了1秒,在du花費了600毫秒來計算5GB的文件夾大小。但我希望產品更快。那麼有沒有可以更快執行任務的命令行支持的命令或工具?命令可以是任何類型(BAT,VBS,PowerShell的....)使用dir或du命令獲取文件夾大小的命令或工具
預先感謝您的....
PowerShell的解決方案。
更多的https://technet.microsoft.com/en-us/library/ff730945.aspx
$colItems = (Get-ChildItem C:\temp -Recurse | Measure-Object -Property length -Sum)
"{0:N2}" -f ($colItems.sum/1MB) + " MB"
措施:
PS C:\> Measure-Command -Expression {
$colItems = (Get-ChildItem C:\temp -Recurse | Measure-Object -Property length -Sum)
"{0:N2}" -f ($colItems.sum/1MB) + " MB"
}
Days : 0
Hours : 0
Minutes : 0
Seconds : 2
Milliseconds : 509
Ticks : 25092400
TotalDays : 2,90421296296296E-05
TotalHours : 0,000697011111111111
TotalMinutes : 0,0418206666666667
TotalSeconds : 2,50924
TotalMilliseconds : 2509,24
同樣與外殼COM對象:
$objFSO = New-Object -ComObject Scripting.FileSystemObject
"{0:N2}" -f (($objFSO.GetFolder("C:\temp").Size)/1MB) + " MB"
措施:
PS C:\> Measure-Command -Expression {
$objFSO = New-Object -ComObject Scripting.FileSystemObject
"{0:N2}" -f (($objFSO.GetFolder("C:\temp").Size)/1MB) + " MB"
}
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 719
Ticks : 7197995
TotalDays : 8,33101273148148E-06
TotalHours : 0,000199944305555556
TotalMinutes : 0,0119966583333333
TotalSeconds : 0,7197995
TotalMilliseconds : 719,7995
謝謝你的回覆.. –
有沒有什麼辦法可以在Windows XP上實現它,因爲我們有30%的客戶端運行在Windows XP上。我們可以在其他腳本中嵌入這些代碼嗎?如果是的話,怎麼樣?或者在其他腳本中是否有類似的操作。 –
當然!假設您安裝了PowerShell,您可以在Windows XP上輕鬆執行這些Powershell腳本。只需使用Invoke-Command cmdlet或通過GPO登錄腳本運行此操作即可。 –
檢查這個 - http://stackoverflow.com/questions/30513287/faster-way-to-get-folder-size-with-batch-script – npocmaka
它是好的robocopy之一,但它花了50毫秒執行解決方案下面在這裏使用新的對象完成相同的工作在30毫秒 –
但問題是它不會工作在Windows XP –