Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 杀死从另一个cmd框中卡住的批处理文件_Batch File - Fatal编程技术网

Batch file 杀死从另一个cmd框中卡住的批处理文件

Batch file 杀死从另一个cmd框中卡住的批处理文件,batch-file,Batch File,希望我在这里的正确位置,我不确定在哪里发布,这似乎是最有可能的 我使用cmd盒运行一个串行闪光器程序来修复wifi板,其工作方式是这样的。 打开命令提示符并更改为工作目录 输入命令 sfh_DM36x.exe -nandflash -v -p "COM3" 这将启动flash程序,但是,由于其工作方式,程序在第一次完成时仅使用bootme bootme循环,这是正常行为。 通常我只需点击CTRL+C,然后退出批处理文件。 再次运行相同的命令,这一次闪烁过程完成,返回到C:\提示符 现在你有了

希望我在这里的正确位置,我不确定在哪里发布,这似乎是最有可能的

我使用cmd盒运行一个串行闪光器程序来修复wifi板,其工作方式是这样的。 打开命令提示符并更改为工作目录 输入命令

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"