我想使用批处理文件来检查如果一个.exe正在运行,如果是,请设置为30秒,并无休止地重新检查。如果.exe没有运行,则启动另一个.bat文件,然后再次检查常量循环,而不需要用户操作。批处理文件检查,重新检查,并开始如果没有运行说.exe无尽
我已经在这里查了很多页面,并尝试了很多东西,并且不能缝以获得任何工作。所以生病给更多的细节。
我需要这个.bat文件,一旦开始检查,看看“7dtd.exe”是否正在运行,如果它正在运行,然后等待,我已经看到整个ping null事情作为一个计时器约30秒,然后如果“7dtd.exe”正在运行,请重新检查。如果它没有运行,那么我需要它启动一个单独的“startdedi.bat”文件,然后检查相同的“7dtd.exe”并继续无休止地检查。任何帮助将是伟大的!
startdedicated.bat
@echo off
rem Starts a dedicated server
rem
rem -quit, -batchmode, -nographics: Unity commands
rem -configfile : Allows server settings to be set up in an xml config file. Use no path if in same dir or full path.
rem -dedicated : Has to be the last option to start the dedicated server.
set LOGTIMESTAMP=
:: --------------------------------------------
:: REMOVE OLD LOGS (only keep latest 20)
for /f "tokens=* skip=19" %%F in ('dir 7DaysToDieServer_Data\output_log*.txt /o-d /tc /b') do del 7DaysToDieServer_Data\%%F
:: --------------------------------------------
:: BUILDING TIMESTAMP FOR LOGFILE
:: Check WMIC is available
WMIC.EXE Alias /? >NUL 2>&1 || GOTO s_start
:: Use WMIC to retrieve date and time
FOR /F "skip=1 tokens=1-6" %%G IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
IF "%%~L"=="" goto s_done
Set _yyyy=%%L
Set _mm=00%%J
Set _dd=00%%G
Set _hour=00%%H
Set _minute=00%%I
Set _second=00%%K
)
:s_done
:: Pad digits with leading zeros
Set _mm=%_mm:~-2%
Set _dd=%_dd:~-2%
Set _hour=%_hour:~-2%
Set _minute=%_minute:~-2%
Set _second=%_second:~-2%
Set LOGTIMESTAMP=__%_yyyy%-%_mm%-%_dd%__%_hour%-%_minute%-%_second%
:s_start
:: --------------------------------------------
:: STARTING SERVER
echo|set /p="251570" > steam_appid.txt
start 7daystodieserver -logfile 7DaysToDieServer_Data\output_log%LOGTIMESTAMP%.txt -quit -batchmode -nographics -configfile=serverconfig.xml -dedicated
echo Starting server ...
timeout 15
cls
echo.
echo Server running in background, you can close this window.
echo You can check the task manager if the server process is really running.
echo.
echo.
pause
我试过这个命令了,它的接缝只要在命令窗口熬夜服务器关闭时要工作我需要的方式来
@echo off
cls
:start
@echo Starting 7DTD Dedicated Test Server...
7daystodieserver -logfile 7DaysToDieServer_Data\output_log%LOGTIMESTAMP%.txt -quit -batchmode -nographics -
configfile=serverconfig.xml -dedicated
echo.
for /F "tokens=2" %%i in ('date /t') do set mydate=%%i
set mytime=%time%
echo Restarting Test Server: %mydate%:%mytime%
echo.
goto start
它重新启动它并让我知道服务器关闭的时间。再次感谢大家的帮助,这让我疯狂!
你说你不能工作......但你有什么试过?我们不是在这里为您编写代码,只是回答关于您的代码的具体问题。请阅读:[我如何提出一个好问题?](https://stackoverflow.com/help/how-to-ask) – Clonkex
'startdedi.bat'是做什么的?它只是启动'7dtd.exe'吗?它的内容是什么? – Compo
请使用** edit **工具将该内容和任何伴随信息添加到原始问题中。 – Compo