【发布时间】:2016-06-24 00:06:42
【问题描述】:
所以谷歌根本没有帮助我,我需要在这里再问一次。 我使用这种方法来检查我的服务器是否在 2 个批处理文件中运行。
tasklist /FI "IMAGENAME eq server_64.exe" 2> nul | find "server_64.exe" > nul
IF ERRORLEVEL == 1 (
echo Server is not running
echo.
) else (
echo Stopping Server ...
echo.
taskkill /F /IM server_64.exe > nul 2>&1
)
一个启动服务器,一个停止服务器。 好吧,这很好用,但是当涉及到批处理文件时,它对我不起作用... 我有一台在 phyton 上运行的服务器,所以通过批处理文件启动它。 我的问题是,有没有办法以某种方式获取批处理文件进程状态并停止它,就像它适用于 exe 一样? 我希望我解释得足够好。 提前谢谢! :)
【问题讨论】:
-
IF %ERRORLEVEL% == 1 (或IF ERRORLEVEL 1 (尽管这些IF没有给出相同的结果,请参阅 ss64.com/nt/if.html 和 ss64.com/nt/find.html -
@JosefZ,最好是
IF %ERRORLEVEL% EQU 1(==运算符强制字符串比较,EQU在两个表达式都是纯数字时进行数值比较;而IF ERRORLEVEL 1实际上表示IF ERRORLEVEL >= 1,但有些命令也可能使用负的ERRORLEVEL值)... -
脚本适用于 exe 文件,就像它不应该适用于批处理文件一样。
标签: windows batch-file cmd tasklist