找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 13422|回复: 1

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

[复制链接]
发表于 2023-9-4 17:48:37 | 显示全部楼层 |阅读模式
本帖最后由 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秒
 楼主| 发表于 2023-9-5 10:57:25 | 显示全部楼层
本帖最后由 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 20:40 , Processed in 0.015876 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表