[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创代码] PowerShell对于全盘搜文件的一些细节

本帖最后由 Nsqs 于 2023-9-4 17:52 编辑

例1:
  1. $t=[System.Environment]::TickCount
  2. [System.Environment]::GetLogicalDrives()|%{
  3.     try{
  4.         dir "$_`qq.exe" -Recurse|%{
  5.             "已找到(用时 $((([System.Environment]::TickCount-$t)/1000).toString('0.00s'))):`r`n$($_.Name)"
  6.             if($_.Name -match 'qq'){break}
  7.         }
  8.     }catch{}
  9. }
复制代码
你们可以测试一下,加-File和不加-File 的时间不一样,不加-File反而速度会提升2倍

另一种调用bat的dir测试中速度直接再进一步提升1倍!
例2:
  1. $t=[System.Environment]::TickCount
  2. [System.Environment]::GetLogicalDrives()|%{
  3.     try{
  4.         cmd /c dir /s/b "$_`qq.exe" 2`>nul|%{
  5.             "已找到(用时 $((([System.Environment]::TickCount-$t)/1000).toString('0.00s'))):`r`n$_"
  6.             if($_ -match 'qq'){break}
  7.         }
  8.     }catch{}
  9. }
复制代码
先不看例2,只看例1的话,不知道例1加File与不加File到底是个什么逻辑,按写代码的逻辑来说我的想法是加了-File应该只搜文件,而不加-File应该会搜文件与文件夹

但是细细一想可能加了参数后,在dir里会多一个条件去处理,所以会拖慢速度..只能这么解释了

例1:
测试结果加 File:大概160秒 不加File 95秒

例2:
测试结果 45秒

本帖最后由 Nsqs 于 2023-9-5 10:58 编辑

对于例1的输出结果对比:
  1. (Measure-Command {
  2. dir d:\qq.exe -File -Recurse
  3. }).TotalSeconds
复制代码
30.9305557
  1. (Measure-Command {
  2. dir d:\qq.exe -Recurse
  3. }).TotalSeconds
复制代码
15.919878

TOP

返回列表