问题在于脚本如果进程以与批处理脚本相同的方式运行,那么它将不起作用。它只是找不到这个过程。有帮助吗? http://pastebin.com/qUrhxYrT
@echo off
title Unturned Server Restarter
echo Server Batch by :: Mage ::
:loop
echo (%time%) Loot Resetting...
start Unturned.exe -nographics -pei -normal -nosync -pvp -port:25444 -players:12 -sv -batchmode
for /f "tokens=2" %%x in ('tasklist ^| findstr Unturned.exe') do set PIDTOKILL=%%x
echo (%time%) Loot Reset.
echo (%time%) Server is online.
echo (%time%) Server Loot Resetting in 2 Hours.
timeout /t 10 >null
echo (%time%) Server Loot now resetting . . .
taskkill /F /PID %PIDTOKILL%
goto loop
答案 0 :(得分:0)
当您启动具有提升权限的批处理文件时,工作目录将设置为system32
文件夹。
据推测,您的脚本无法找到Unturned.exe
文件,因此使用cd
命令在循环之前设置工作目录是解决此类问题的一种方法。
答案 1 :(得分:0)
请参阅下面的代码,其中包含所有可执行文件的完整路径。
@echo off
title Unturned Server Restarter
echo Server Batch by :: Mage ::
:loop
echo (%time%) Loot Resetting...
start "Unturned" "%ProgramFiles%\team\steamapps\common\Unturned\Unturned.exe" -nographics -pei -normal -nosync -pvp -port:25444 -players:12 -sv -batchmode
for /f "tokens=2" %%x in ('%SystemRoot%\System32\tasklist.exe ^| %SystemRoot%\System32\findstr.exe Unturned.exe') do set PIDTOKILL=%%x
echo (%time%) Loot Reset.
echo (%time%) Server is online.
echo (%time%) Server Loot Resetting in 2 Hours.
timeout /t 10 >null
echo (%time%) Server Loot now resetting . . .
%SystemRoot%\System32\taskkill.exe /F /PID %PIDTOKILL%
goto loop
由于我不知道您的计算机上安装了Unturned.exe
,您可能需要调整字符串"%ProgramFiles%\team\steamapps\common\Unturned\Unturned.exe"
。
%ProgramFiles%
是对环境变量 ProgramFiles 的字符串值的引用,通常包含C:\Program Files
。
在64位Windows上还有环境变量 ProgramFiles(x86),如果%ProgramFiles(x86)%
安装在Unturned.exe
以下,则需要在批处理代码中与C:\Program Files (x86)
一起使用{1}}。