Vegas Pro 17.0的假后台进程bug 与解决方案

不知道是不是通病
Vegas Pro 17.0的假后台进程bug 与解决方案

bug描述:

关闭Vegas后,后台有个假进程,并占用了200M左右内存空间。问题在于,再次打开Vegas时,它会另开一个进程,不会杀死原来的假死进程。如此往复开个10几次,3G内存就消耗殆尽了。
Vegas Pro 17.0的假后台进程bug 与解决方案

解决方案:

在桌面新建批处理bat,并将一下代码复制进去,以后用批处理代替原来的快捷方式而启动。
如果想要杀死假后台进程,再运行下批处理就行(仅杀死,需再运行一次批处理才会重新打开Vegas)

  @echo off
  mode con: cols=42 lines=1
  tasklist /fo csv /nh /fi "IMAGENAME eq vegas170.exe" /fi "status eq running"| findstr vegas170>nul && (title 检测到Vegas已运行 & set/p=Vegas已运行,等7秒或按s跳过<nul & choice /c s /t 7 /d s>nul)
  (tasklist /fo csv /nh /fi "IMAGENAME eq vegas170.exe" | findstr vegas170 >nul) && (echo; &pause) || (start vegas170 %* & exit)
  (for /f tokens^=2^ delims^=^"^, %%i in (‘tasklist /fo csv /nh /fi "IMAGENAME eq vegas170.exe" /fi "status eq not responding" ‘) do tskill %%i) && (title 已杀死伪进程 & echo; &set/p=已杀,可重开批处理来打开Vegas,按任意键<nul & pause>nul)

代码详解:

  @echo off
  :: 关闭回显
  mode con: cols=42 lines=1
  :: 设置窗口大小,宽42,行1
  tasklist /fo csv /nh /fi "IMAGENAME eq vegas170.exe" /fi "status eq running"| findstr vegas170>nul && (title 检测到Vegas已运行 & set/p=Vegas已运行,等7秒或按s跳过<nul & choice /c s /t 7 /d s>nul)
  :: 显示任务列表,以csv简单列表格式显示结果,并筛选后只显示:进程名(映像名)为vegas170.exe 且 状态为running。将结果传递给findstr过程,寻找"vegas170"关键字 。找到后(findstr执行成功)叫你等待7秒,等待假进程
  (tasklist /fo csv /nh /fi "IMAGENAME eq vegas170.exe" | findstr vegas170 >nul) && (echo; &pause) || (start vegas170 %* & exit)
  :: 如果还是能找到Vegas进程,就叫你再按下任意键,**否则就新开一个Vegas**
  (for /f tokens^=2^ delims^=^"^, %%i in (‘tasklist /fo csv /nh /fi "IMAGENAME eq vegas170.exe" /fi "status eq not responding" ‘) do tskill %%i) && (title 已杀死伪进程 & echo; &set/p=已杀,可重开批处理来打开Vegas,按任意键<nul & pause>nul)
  :: for结构用来提取字符串(batch反人类设计),提取无响应(not respoding)的Vegas进程ProcessID,把提取的PID传递给tskill过程,并告诉你暗杀成功XD

注意:tskill比taskkill更为强力,taskkill /f 会提示“没有此任务的实例运行”,tskill可以(搞不懂)
Vegas Pro 17.0的假后台进程bug 与解决方案

运行结果:

第一次打开Vegas,批处理跳过第1行;关闭Vegas后,再运行会杀死假进程;再运行一次批处理,Vegas才会被重新启动

有趣的现象:

刚关闭Vegas,若不等待几秒,进程状态仍被识别为runnning(跟Windows判断机制有关?)

Vegas Pro 17.0的假后台进程bug 与解决方案

上一篇:Shell


下一篇:Shell命令和流程控制[linux常用命令的使用]