等待程序关闭以保持批量操作

Wait programm close to keep an action by batch

刚刚制作了以下脚本:

@echo off
@setlocal enableextensions
@cd /d "%~dp0"
mode 48,12
title BACKUP TEST
:test
cls
tasklist /fi "imagename eq test.exe" 2>nul | find /i /n "test.exe">nul
if "%errorlevel%"=="0" echo Encerre o Test para continuar...&echo.&pause&cls&goto test

if exist "C:\xxxxx\xxxx\BACKUP TEST\BKP TEST %date:/=.%.rar" goto end
echo Backup do banco iniciado...
set winrar="C:\Program Files\winrar"
%winrar%\winrar.exe a -ibck -ep1 "C:\xxxx\XXXXX\BACKUP TEST\BKP TEST  %date:/=.%.rar" "C:\XXXXX\XXXXX\TEST_BD0.FDB"
cls

if "%errorlevel%"=="0" (
echo Backup do banco de dados realizado com sucesso
echo em %date% …s %time:~0,2%:%time:~3,2%h
echo.
echo.
pause
exit
)
if "%errorlevel%"=="1" (
echo. 
echo Falha ao realizar o bakcup...
pause
exit
)
exit
:end
echo O backup do banco de dados de %date% 
echo ja existe.
echo.
echo.
echo Por seguran‡a fa‡a o backup manualmente.
echo.
echo.
pause

我必须关闭 Test.exe 然后按一些键让脚本继续运行。我只想关闭 Test.exe 并且脚本会自动继续运行而无需按任何键。 有办法吗?

这应该有效。

@echo off
@setlocal enableextensions
@cd /d "%~dp0"
mode 48,12
title BACKUP TEST
tasklist /fi "imagename eq test.exe" 2>nul | find /i /n "test.exe">nul
if "%errorlevel%"=="0" (echo Encerre o Test para continuar...)
:test
tasklist /fi "imagename eq test.exe" 2>nul | find /i /n "test.exe">nul
if "%errorlevel%"=="0" (goto test)

if exist "C:\xxxxx\xxxx\BACKUP TEST\BKP TEST %date:/=.%.rar" goto end
echo Backup do banco iniciado...
set winrar="C:\Program Files\winrar"
%winrar%\winrar.exe a -ibck -ep1 "C:\xxxx\XXXXX\BACKUP TEST\BKP TEST  %date:/=.%.rar" "C:\XXXXX\XXXXX\TEST_BD0.FDB"
cls

if "%errorlevel%"=="0" (
echo Backup do banco de dados realizado com sucesso
echo em %date% …s %time:~0,2%:%time:~3,2%h
echo.
echo.
pause
exit
)
if "%errorlevel%"=="1" (
echo. 
echo Falha ao realizar o bakcup...
pause
exit
)
exit
:end
echo O backup do banco de dados de %date% 
echo ja existe.
echo.
echo.
echo Por seguran‡a fa‡a o backup manualmente.
echo.
echo.
pause

删除了pause。归功于 Squashman

我还 简单地添加了 goto 循环,同时还在 "test" 循环之前使用了 tasklist,因此它会检查 echo 的文本一次如果任务在那里(所以它不会闪烁并根据的要求停止) Lalalalala 在OP的评论部分和我的答案评论部分。