我玩一款名为assetto corsa的游戏。 开发人员决定在最后一次更新时对我们的开发方面进行努力。
长而缺乏。我现在必须通过EXE启动服务器,在比赛结束后重置acserver.exe,以便我们可以旋转曲目..
我写了一个小的bat文件来检测exe关闭和重启。然后它被用来将一些CFG文件复制到一个文件夹中,这样我们就有了适合赛道的汽车。 这是代码。
@echo off
:start
start Console_AC_TrackCycle.exe
Ping Loopback
cls
:run1
tasklist /FI "IMAGENAME eq acserver.exe" | find /I "acserver.exe"
IF ERRORLEVEL 1 GOTO spa1
IF ERRORLEVEL 0 GOTO run1
:spa1
del /f /q cfg\*.*
copy presets\spa\*.* cfg\
GOTO run2
:run2
tasklist /FI "IMAGENAME eq acserver.exe" | find /I "acserver.exe"
IF ERRORLEVEL 1 GOTO green1
IF ERRORLEVEL 0 GOTO run2
:green1
del /f /q cfg\*.*
copy presets\Nordschleife\*.* cfg\
GOTO run3
:run3
tasklist /FI "IMAGENAME eq acserver.exe" | find /I "acserver.exe"
IF ERRORLEVEL 1 GOTO nur1
IF ERRORLEVEL 0 GOTO run3
:nur1
del /f /q cfg\*.*
copy presets\nurburg\*.* cfg\
GOTO run4
:run4
tasklist /FI "IMAGENAME eq acserver.exe" | find /I "acserver.exe"
IF ERRORLEVEL 1 GOTO mug1
IF ERRORLEVEL 0 GOTO run4
:mug1
del /f /q cfg\*.*
copy presets\Mugello\*.* cfg\
GOTO run5
:run5
tasklist /FI "IMAGENAME eq acserver.exe" | find /I "acserver.exe"
IF ERRORLEVEL 1 GOTO sil1
IF ERRORLEVEL 0 GOTO run5
:sil1
del /f /q cfg\*.*
copy presets\Silverstone\*.* cfg\
GOTO run6
:run6
tasklist /FI "IMAGENAME eq acserver.exe" | find /I "acserver.exe"
IF ERRORLEVEL 1 GOTO imo1
IF ERRORLEVEL 0 GOTO run6
:imo1
del /f /q cfg\*.*
copy presets\Imola\*.* cfg\
GOTO run7
:run7
tasklist /FI "IMAGENAME eq acserver.exe" | find /I "acserver.exe"
IF ERRORLEVEL 1 GOTO vold1
IF ERRORLEVEL 0 GOTO run7
:vold1
del /f /q cfg\*.*
copy presets\voldermort\*.* cfg\
GOTO run8
:run8
tasklist /FI "IMAGENAME eq acserver.exe" | find /I "acserver.exe"
IF ERRORLEVEL 1 GOTO mag1
IF ERRORLEVEL 0 GOTO run8
:mag1
del /f /q cfg\*.*
copy presets\Magione\*.* cfg\
GOTO run9
:run9
tasklist /FI "IMAGENAME eq acserver.exe" | find /I "acserver.exe"
IF ERRORLEVEL 1 GOTO vall1
IF ERRORLEVEL 0 GOTO run9
:vall1
del /f /q cfg\*.*
copy presets\Vallelunga\*.* cfg\
GOTO rung
:rung
tasklist /FI "IMAGENAME eq acserver.exe" | find /I "acserver.exe"
IF ERRORLEVEL 1 GOTO spa1
IF ERRORLEVEL 0 GOTO rung
Pause
忽略最后的停顿我把它放在那里检查它像我预期的那样循环..
现在问题是Acserver.exe并没有真正关闭。它重置。它的PID发生变化,但Exe永远不会消失。
我可以做些什么来编辑上面的代码,这样它就会在exe关闭时执行它所要做的事情,但是现在在PID改变时这样做。
感谢名单。