希望我在正确的地方,不确定在哪里张贴,这似乎是最有可能的
我使用cmd盒运行一个串行闪存程序来修复wifi板,它的工作方式是这样的。打开命令提示符并切换到工作目录,输入命令
sfh_DM36x.exe -nandflash -v -p "COM3" 这会启动闪存程序,但是,由于它的工作方式,程序在第一次完成时只会使用bootme bootme循环,这是正常行为。
正常情况下,我只需点击CTRL+C并退出批处理文件。再次运行相同的命令,这一次刷新过程完成,您将返回到C:\提示符。
现在你有了这里的信息,这就是我想要实现的。
启动一个运行runflash.bat的批处理文件,杀死runflash.bat,然后再次运行runflash.bat。
到目前为止,我已经走到这里(start.bat)
start c:\users\jud\desktop\runflash.bat
timeout /t 5这将运行新的CMD提示符并打开runflash.bat
然后我输入了5秒的超时时间(足够第一次尝试完成)
此时,我想终止当前打开的CMD提示符,然后再次执行runflash.bat。
在这一点上我被难住了,任何试图杀死第二个CMD提示符的尝试都会杀死原始提示符,我已经查看了taskkill,但每次运行脚本时PID都会改变,以及在谷歌搜索过程中遇到的其他建议,大多数只是与手动终止批处理文件或在批处理文件完成时终止CMD提示符有关。
可以做到这一点吗?我们的想法是将文件作为一个一体化的解决方案传递给不熟悉CMD prompt工作方式的用户。
发布于 2020-01-22 21:00:28
为新流程提供一个惟一的标题(请参见start /? -第一个引用的参数设置为标题)。然后,Takskkill可以使用其标题来标识并关闭该进程:
start "JudRunFlash" "c:\users\jud\desktop\runflash.bat"
timeout /t 5 >nul
taskkill /fi "WindowTitle eq JudRunFlash"https://stackoverflow.com/questions/59848210
复制相似问题