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

Powershell 是解释型的脚本语言,排除实现方法和优化问题外想了解具体速度差异建议了解背后编译的过程(解释器),解释器在解释不同语法组合时难免会产生额外操作,因此带来了不同的执行效率。
此外,运行效率来说越接近底层越高效。Powershell 可以通过使用 .net 语法来达到近乎最高效。

对于楼主的情况如果每行文本长度固定的话可以考虑通过文件大小来分割,应该能做到更快。
  1. $fromFile=[io.file]::OpenRead('文件路径')
  2. $buff=New-Object byte[] 字节数
  3. $count=$i=0
  4. do{
  5.   $count=$fromFile.Read($buff,0,$buff.Length)
  6.   if($count -gt 0){
  7.     $to='分割文件名{0}' -f ($i)
  8.     $toFile=[io.file]::OpenWrite($to)
  9.     try{
  10.         $tofile.Write($buff,0,$count)
  11.     }finally{
  12.         $tofile.Close()
  13.     }
  14.   }
  15.   $i++
  16. }while($count -gt 0)
  17. $fromFile.Close()
复制代码
最后,降低操作量也是优化效率的关键。例如上述代码中,跳过输出非必要分段也可以进一步提升效率。
1

评分人数

TOP

返回列表