Batch file 命令或工具以获取windows中的文件夹大小,而不是使用dir或du

Batch file 命令或工具以获取windows中的文件夹大小,而不是使用dir或du,batch-file,vbscript,command,directory,Batch File,Vbscript,Command,Directory,我在一家软件公司工作。我使用批处理文件通过dir和du获得文件夹大小,但在dir中需要1秒,在du中需要600毫秒来计算5GB的文件夹大小。但我希望产品的速度更快。那么,是否有任何具有命令行支持的命令或工具可以更快地执行任务?命令可以是任何类型(bat、vbs、powershell…) 提前感谢您……Powershell解决方案 阅读更多 措施: PS C:\> Measure-Command -Expression { $colItems = (Get-ChildItem C:\temp

我在一家软件公司工作。我使用批处理文件通过dir和du获得文件夹大小,但在dir中需要1秒,在du中需要600毫秒来计算5GB的文件夹大小。但我希望产品的速度更快。那么,是否有任何具有命令行支持的命令或工具可以更快地执行任务?命令可以是任何类型(bat、vbs、powershell…)

提前感谢您……

Powershell解决方案

阅读更多

措施:

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
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
与shell com对象相同:

$objFSO = New-Object -ComObject  Scripting.FileSystemObject
"{0:N2}" -f (($objFSO.GetFolder("C:\temp").Size) / 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
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
Powershell解决方案

阅读更多

措施:

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
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
与shell com对象相同:

$objFSO = New-Object -ComObject  Scripting.FileSystemObject
"{0:N2}" -f (($objFSO.GetFolder("C:\temp").Size) / 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
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
Powershell解决方案

阅读更多

措施:

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
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
与shell com对象相同:

$objFSO = New-Object -ComObject  Scripting.FileSystemObject
"{0:N2}" -f (($objFSO.GetFolder("C:\temp").Size) / 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
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
Powershell解决方案

阅读更多

措施:

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
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
与shell com对象相同:

$objFSO = New-Object -ComObject  Scripting.FileSystemObject
"{0:N2}" -f (($objFSO.GetFolder("C:\temp").Size) / 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
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


检查这个-这是一个很好的机器人,但是,在下面使用新对象的解决方案在30毫秒内完成相同的工作时,执行起来需要50秒。但问题是,它在windows XP上无法工作,没有更多的解决方案。根据我的测试--这里最新的解决方案是最快的--没有使用
findstr
,并且dir命令输出减少了多达有可能。检查这个-这是一个很好的机器人,但是,在下面使用新对象的解决方案在30毫秒内完成相同的工作时,执行起来需要50秒。但问题是,它在windows XP上无法工作,没有更多的解决方案。根据我的测试--这里最新的解决方案是最快的--没有使用
findstr
,并且dir命令输出减少了多达有可能。检查这个-这是一个很好的机器人,但是,在下面使用新对象的解决方案在30毫秒内完成相同的工作时,执行起来需要50秒。但问题是,它在windows XP上无法工作,没有更多的解决方案。根据我的测试--这里最新的解决方案是最快的--没有使用
findstr
,并且dir命令输出减少了多达有可能。检查这个-这是一个很好的机器人,但是,在下面使用新对象的解决方案在30毫秒内完成相同的工作时,执行起来需要50秒。但问题是,它在windows XP上无法工作,没有更多的解决方案。根据我的测试--这里最新的解决方案是最快的--没有使用
findstr
,并且dir命令输出减少了多达可能。有没有办法在windows xp上实现它,因为我们有30%的客户端在windows xp上运行。我们可以在任何其他脚本中嵌入此代码吗?如果可以,如何嵌入?或者在其他脚本中是否有类似的操作。当然!假设已安装Powershell,则可以在Windows XP上轻松执行这些Powershell脚本。只需使用Invoke Command cmdlet或通过GPO登录脚本运行此命令。很难告诉客户端安装Powershell。不要介意通过使用.GetFolder和.size引用您的第二个命令,在vbs中获得合适的解决方案。谢谢您的帮助…有没有办法在windows xp上实现它,因为我们有30%的客户端在windows xp上运行。我们可以在任何其他脚本中嵌入此代码吗?如果可以,如何嵌入?或者在其他脚本中是否有类似的操作。当然!假设已安装Powershell,则可以在Windows XP上轻松执行这些Powershell脚本。只需使用Invoke Command cmdlet或通过GPO登录脚本运行此命令。很难告诉客户端安装Powershell。不要介意通过使用.GetFolder和.size引用您的第二个命令,在vbs中获得合适的解决方案。谢谢您的帮助…有没有办法在windows xp上实现它,因为我们有30%的客户端在windows xp上运行。我们可以在任何其他脚本中嵌入此代码吗?如果可以,如何嵌入?或者在其他脚本中是否有类似的操作。当然!假设已安装Powershell,则可以在Windows XP上轻松执行这些Powershell脚本。只需使用Invoke Command cmdlet或通过GPO登录脚本运行此命令。很难告诉客户端安装Powershell。不要介意通过使用.GetFolder和.size引用您的第二个命令,在vbs中获得合适的解决方案。谢谢您的帮助…有没有办法在windows xp上实现它,因为我们有30%的客户端在windows xp上运行。我们可以在任何其他脚本中嵌入此代码吗?如果可以,如何嵌入?或者在其他脚本中是否有类似的操作。当然!假设已安装Powershell,则可以在Windows XP上轻松执行这些Powershell脚本。只需使用Invoke Command cmdlet或通过GPO登录脚本运行此命令。很难告诉客户端安装Powershell。通过使用.GetFolder和.size引用您的第二个命令,在vbs中获得了合适的解决方案。谢谢您的帮助。。。