标题: [原创代码] PowerShell对于全盘搜文件的一些细节 [打印本页]
作者: Nsqs 时间: 2023-9-4 17:48 标题: PowerShell对于全盘搜文件的一些细节
本帖最后由 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秒
作者: Nsqs 时间: 2023-9-5 10:57
本帖最后由 Nsqs 于 2023-9-5 10:58 编辑
对于例1的输出结果对比:- (Measure-Command {
- dir d:\qq.exe -File -Recurse
- }).TotalSeconds
复制代码
30.9305557- (Measure-Command {
- dir d:\qq.exe -Recurse
- }).TotalSeconds
复制代码
15.919878
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |