| 
 | 
 本帖最后由 datbik189 于 2019-7-25 17:01 编辑  
 
 
 
从测试来看, 建议采取切换WID的办法且不保存历史记录(将 &DISKPART_OLD 改成 &), 获得DISKPART的回显. 
 
测试了一下,脚本运行速度没什么变化, 没办法了. 
 
固定WID 和 切换不同的WID (换DISKPART), 运行100遍 "sel disk 0 + detail disk" 时间都是约 14 秒. 
 
运行了1500次以后, 不保存历史记录(将 &DISKPART_OLD 改成 &), 结果如下: 
 
固定WID:  临时文件有 43508 行,最后一次运行的时间为 217 ms, 总的运行时间 227 秒. 
 
变换WID:  临时文件小于 500 行,最后一次运行的时间为 33 ms, 总的运行时间为 109 秒. 
 
 
 
 
 
 
 
 
变换WID脚本: 
 
envi^ envimode=1 
 
set-raw &启动副本=thread* -here -tid:&备用tid team wait 50|set &DISKPART_备用WID=|load #998 & &DISKPART_备用WID &DISKPART_备用FILE & &|SET-RET &DISKPART_备用WID=%&DISKPART_备用WID%|SET-RET &DISKPART_备用FILE=%&DISKPART_备用FILE% 
team set. &exit=exit\n|load #999*命令_宽字符 &exit 
 
load #998 & &DISKPART_WID &DISKPART_FILE &DISKPART_OLD &DISKPART_NEWS //启动diskpart 
%&启动副本% 
 
load #999*命令_数字循环 &num 1 1 100 //生成数字序列 
date &t1 uptime 
forx * %&num%,&, 
{* set. &指令=sel disk 0 \n detail disk 
   load #998 &指令 &DISKPART_WID &DISKPART_FILE &DISKPART_OLD &DISKPART_NEWS 
   Team read %&DISKPART_file%,**,&V|read -*,-1,&V,&V 
   IFEX $[%&V%>500 & %&DISKPART_备用WID%>0], 
   {* forx * %&exit%,&V,ENVI @@SENDMSG=%&DISKPART_WID%;0X102;0x%&V% 
      Team set &DISKPART_WID=%&DISKPART_备用WID%|set &DISKPART_FILE=%&DISKPART_备用FILE% 
      %&启动副本% 
    } 
} 
date &t2 uptime 
calc &t=%&t2%-%&t1% 
team set. &line=%&DISKPART_OLD%\n%&DISKPART_NEWS%|read -*,-1,&line,&line 
mess %&DISKPART_OLD%\n%&DISKPART_NEWS%@耗时 %&t% ms %&line% 行 
kill diskpart.exe 
 
 
 
 
 
 |   
 
 
 
 |