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


第九题,验证结果,只对脚本不对人。我觉得这是磁盘密集型程序.
测试机 硬盘=raid5=各类杂数据600G   cpu=i5 4670=3.7G=4核 按说cpu硬盘算较快的,
现在公司文件服务器上的数据,动辄3---4tb不新鲜。600g不算多。根目录+各级非空子目录=2万多个,也不算多。
想知道你的f盘,总共有多少个非空目录么?用下述语句即可:
  1. $f盘所有目录 = Get-ChildItem f:\  -Recurse -Force  | Where-Object {($_.PsIsContainer -eq $true) -and ( $_.GetFiles().Count -ne 0)}
  2. write-host "需要处理的目录数为:"  $f盘所有目录.Length
复制代码
我的powershell脚本,计算总用时=1分50秒
我的powershell脚本,首先获取f盘所有目录,这时raid盘叽里呱啦响,磁盘读1.7M---2.5M,写280k左右。cpu占9%
然后算目录中文件的md5,此时磁盘读写很低,cpu占29%左右。
然后向d盘写一个临时文件,【f盘重复目录信息.txt】,其内容 如:
10        F:\DL\Cpbcw_20110918215925\Tetris\Blocks        2e8961dee211345fab07eeba8ab7110f
第一部分是这个目录含有的文件数,第二部分是路径,第三部分是文件名列表的md5码
当然这个步骤不是必须。如果没有此步骤,脚本更快。

然后进入第二部分,对此临时文件进行处理。生成最终结果文件。【f盘重复目录最终结果.txt】3.3MB 为unicode编码,变成ansi编码应该 1.8 MB左右。
内容大概是这样:
----------------------------------------------
F:\软件仓库\装机软件\DRV\TL-WN811N_851N_910N_951N\Driver Files\Win2000
F:\软件仓库\装机软件\DRV\TL-WN811N_851N_910N_951N\Driver Files\WinXP\32
-----------------------------------------------
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\ar
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\bg
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\ca
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\cs
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\da
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\de
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\el
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\es
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\et
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\eu
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\fi
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\fr
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\he
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\hr
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\hu
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\id
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\it
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\ja
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\ko
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\lt
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\lv
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\ms
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\nl
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\no
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\pl
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\pt
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\pt-BR
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\ro
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\ru
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\sk
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\sl
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\sr-Cyrl-CS
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\sr-Latn-CS
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\sv
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\th
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\tr
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\uk
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\vi
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\zh-Hans
F:\DL\Cpbcw_20110918215925\Tetris\Bin\Debug\zh-Hant
-----------------------------------------------
F:\软件仓库\装机软件\DRV\TL-WN811N_851N_910N_951N\Driver Files\Vista\32
F:\软件仓库\装机软件\DRV\TL-WN851N 2.0 Win7 Beta版驱动\X86
-----------------------------------------------
F:\软件仓库\装机软件\DRV\TL-WN811N_851N_910N_951N\Driver Files\Vista\64
F:\软件仓库\装机软件\DRV\TL-WN851N 2.0 Win7 Beta版驱动\X64
----------------------------------------------------

我特意查找了下,有下述这两个目录
f:\DL\Swords.SoldiersCN\Swords.Soldiers\Data\Fonts\defaultFontButtons\HD
f:\DL\Swords.SoldiersCN\Swords.Soldiers\Data\Fonts\defaultFontButtons\SD

---结论---
1这道题被powerhshell完美地解决了,没有什么特殊目录取不出来的,没有多取,没有少取。没有误取。用bat貌似没人能实现。
2快速。用bat貌似没人能实现。
3因权限问题读取不了的目录文件,除外。

---致出题人---
1 就好像考大学一样,经常有一年的题出的难了,我看今年的第九题就是如此。所以大家答得都不好。
2 不妨搞一个2013年bat编程大赛外传,还是第九题:
不限制用任何语言,不限制同时用2种语言(如vbs嵌入bat等)不限制任何外部程序。
如果可以用任何外部程序,这道题解起来貌似好写多了吧。
3 我希望能用【1分50秒】给大家砸来出点,写脚本的激情。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

开始发奖
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

这些一定都是高手的高手

TOP

有没有比赛战果展示?
ssk

TOP

回复 31# PowerShell


    powershell是强大点!
ssk

TOP

新人路過學習下、、

TOP

好高兴,可以学到很多东西了

TOP

返回列表