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 如果没有响应,如何停止bat文件的运行_Batch File - Fatal编程技术网

Batch file 如果没有响应,如何停止bat文件的运行

Batch file 如果没有响应,如何停止bat文件的运行,batch-file,Batch File,我创建了一个bat文件,它将键添加到windows注册表,然后调用另一个bat文件QGIS.bat(这个bat文件启动一个名为QGIS的应用程序) 它在大多数情况下都能工作,但有时,当它调用QGIS.bat时,什么都不会发生,命令窗口保持打开状态,但QGIS(由QGIS.bat文件启动)不会启动。 在命令窗口(cmd)中,它只显示call。\usbgis\apps\qgis\bin\qgis.bat (请注意,QGIS是一款使用USB记忆棒运行的便携式应用程序,这可能是问题的一部分?) 所以我的

我创建了一个bat文件,它将键添加到windows注册表,然后调用另一个bat文件QGIS.bat(这个bat文件启动一个名为QGIS的应用程序)

它在大多数情况下都能工作,但有时,当它调用QGIS.bat时,什么都不会发生,命令窗口保持打开状态,但QGIS(由QGIS.bat文件启动)不会启动。 在命令窗口(cmd)中,它只显示call。\usbgis\apps\qgis\bin\qgis.bat

(请注意,QGIS是一款使用USB记忆棒运行的便携式应用程序,这可能是问题的一部分?)

所以我的问题是。如果bat文件在3分钟内未关闭或另一个bat文件未启动,是否有办法终止该bat文件


谢谢,

这就是我在评论中所说的:

@echo off
setlocal enabledelayedexpansion

set sPath=C:\Program Files\Internet Explorer
set sprog=iexplore.exe
set inc=0

:loop
if exist "%sPath%\%sProg%" (echo %sProg%) else exit /b
set /a inc+=1
if "!inc!" equ "30" (Echo Exiting & exit /b)
for /f %%a in (
  'tasklist /NH /FI "Imagename eq %sProg%"^|findstr /i "INFO:"') do (
     if not errorlevel 1 (
       ping -n 11 127.0.0.1>nul
       goto :loop
     )
)

显然,更改路径和文件以匹配您的路径和文件。我只是需要一些东西来测试一下

在QGIS.bat中添加一个循环,使其每隔10秒左右运行一次,使用任务列表检查程序是否正在运行。每次它都会增加一个变量,直到它达到30,如果它确实退出,则返回一个错误代码。