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

时间:2018-09-12 19:00:48

标签: batch-file cmd batch-processing

只需在下面创建此脚本:

@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,脚本将自动继续运行而无需按任何键。 有办法吗?

1 个答案:

答案 0 :(得分:1)

这应该有效。

@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循环,同时还在“测试”循环之前使用了tasklist,因此如果任务在那里,它会检查并echo一次输入文本( 因此它不会闪烁,并且会按照OP的“注释”部分和“答案注释”部分中的 Lalalalala的要求停止。