Batch file 杀死从另一个cmd框中卡住的批处理文件
希望我在这里的正确位置,我不确定在哪里发布,这似乎是最有可能的 我使用cmd盒运行一个串行闪光器程序来修复wifi板,其工作方式是这样的。 打开命令提示符并更改为工作目录 输入命令Batch file 杀死从另一个cmd框中卡住的批处理文件,batch-file,Batch File,希望我在这里的正确位置,我不确定在哪里发布,这似乎是最有可能的 我使用cmd盒运行一个串行闪光器程序来修复wifi板,其工作方式是这样的。 打开命令提示符并更改为工作目录 输入命令 sfh_DM36x.exe -nandflash -v -p "COM3" 这将启动flash程序,但是,由于其工作方式,程序在第一次完成时仅使用bootme bootme循环,这是正常行为。 通常我只需点击CTRL+C,然后退出批处理文件。 再次运行相同的命令,这一次闪烁过程完成,返回到C:\提示符 现在你有了
sfh_DM36x.exe -nandflash -v -p "COM3"
这将启动flash程序,但是,由于其工作方式,程序在第一次完成时仅使用bootme bootme循环,这是正常行为。通常我只需点击
CTRL+C
,然后退出批处理文件。
再次运行相同的命令,这一次闪烁过程完成,返回到C:\
提示符
现在你有了这里的信息,这就是我想要实现的
启动运行runflash.bat的批处理文件,杀死runflash.bat,然后再次运行runflash.bat
到目前为止,我已经做到了这一点(start.bat)
这将运行一个新的CMD提示符并打开runflash.bat
然后我输入了5秒的超时时间(足够第一次尝试完成)
此时,我想关闭当前打开的CMD提示符,然后再次执行runflash.bat
在这一点上,我被难住了,任何试图杀死第二个CMD提示符的行为都会杀死原始的,我已经查看了taskkill
,但是每次我运行脚本时PID都会发生变化,以及在谷歌搜索中遇到的其他建议,大多数只是手动终止批处理文件或在批处理文件完成时终止CMD提示符
如果可以做到这一点,我们的想法是将文件分发给不熟悉CMD prompt工作的用户,作为一个多功能解决方案。为新流程提供一个唯一的标题(请参见
start/?
-第一个引用的参数设置为标题)Takskill
然后可以用其标题识别并关闭流程:
start "JudRunFlash" "c:\users\jud\desktop\runflash.bat"
timeout /t 5 >nul
taskkill /fi "WindowTitle eq JudRunFlash"
听起来好像您只是想用已知的WindowTitle或PID启动一个批处理文件,然后可以启动它,超时一段合理的时间,然后使用已知的WindowTitle或PID杀死它,然后再循环回调用该文件。请搜索此网站并查看命令帮助以了解更多信息。通过打开命令提示符窗口,键入其名称,后跟
/?
并按enter键,几乎可以获得任何命令的帮助。start
可以为新进程提供定义的窗口标题,taskkill
有一个过滤器来查找窗口标题。应该没什么大问题。太棒了,谢谢你的回复,我稍后会试试。问题是,CMD.exe显示信息:没有使用指定标准运行的任务。并且不会杀死JudRunFlash框。这似乎是循环BootMe消息导致的问题,如果我断开BootMe循环,那么它工作正常。我找到Start/min作为命令,再次感谢,非常感谢
start "JudRunFlash" "c:\users\jud\desktop\runflash.bat"
timeout /t 5 >nul
taskkill /fi "WindowTitle eq JudRunFlash"