本帖最后由 Nsqs 于 2023-9-4 17:52 编辑
例1:- $t=[System.Environment]::TickCount
- [System.Environment]::GetLogicalDrives()|%{
- try{
- dir "$_`qq.exe" -Recurse|%{
- "已找到(用时 $((([System.Environment]::TickCount-$t)/1000).toString('0.00s'))):`r`n$($_.Name)"
- if($_.Name -match 'qq'){break}
- }
- }catch{}
- }
复制代码 你们可以测试一下,加-File和不加-File 的时间不一样,不加-File反而速度会提升2倍
另一种调用bat的dir测试中速度直接再进一步提升1倍!
例2:- $t=[System.Environment]::TickCount
- [System.Environment]::GetLogicalDrives()|%{
- try{
- cmd /c dir /s/b "$_`qq.exe" 2`>nul|%{
- "已找到(用时 $((([System.Environment]::TickCount-$t)/1000).toString('0.00s'))):`r`n$_"
- if($_ -match 'qq'){break}
- }
- }catch{}
- }
复制代码 先不看例2,只看例1的话,不知道例1加File与不加File到底是个什么逻辑,按写代码的逻辑来说我的想法是加了-File应该只搜文件,而不加-File应该会搜文件与文件夹
但是细细一想可能加了参数后,在dir里会多一个条件去处理,所以会拖慢速度..只能这么解释了
例1:
测试结果加 File:大概160秒 不加File 95秒
例2:
测试结果 45秒 |