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

[技术讨论] PowerShell解决用纯BAT几秒内生成几万个字符串组的问题

N久以前的事了。用纯P写,总是没达到要求。[任意7位数,以大定字母开头,后6位为大小写字母和数字的任意组合]
现在用 Powershell 写。不开多任务,约3秒多点 完成10000次,7秒多点 20000次 10秒30000次,也算符合要求。
如何把开头的字符数组直接写,不用 toCharArray()分割.可以少约 1秒。
  1. $time=get-date
  2. $ULetter=@('ABCDEFGHIJKLMNOPQRSTUVWXYZ'.toCharArray())
  3. $DigitLetter=@('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'.toCharArray())
  4. while ($num -lt 10000){
  5. [Collections.ArrayList]$random=@(get-random -input $ULetter) #大写字母开头
  6. $random+=get-random -input $DigitLetter -count 6 #数字和大小写字母
  7. $str=-join $random  #用 + 的方法连接字符约少 0.2秒。
  8. #if($str -match '(\d+){1,}') { #至少包含一位数字
  9. $str
  10. $num++
  11. #}
  12. }
  13. ([datetime]::now - $time).TotalMilliSeconds
  14. pause
复制代码

回复 2# 523066680

I5  多线程 1000000个,要40多秒。感觉写法不太好。再研究一下。那个[random]等还用不好。

TOP

回复 7# bailong360

不会你的电脑比偶的还差吧。偶测试只有 0.716秒。

TOP

返回列表