Windows 检查另一个批处理文件进程的批处理文件
所以谷歌根本帮不了我,我需要再问一次。 我使用这种方法来检查我的服务器是否在2个批处理文件中运行Windows 检查另一个批处理文件进程的批处理文件,windows,batch-file,cmd,tasklist,Windows,Batch File,Cmd,Tasklist,所以谷歌根本帮不了我,我需要再问一次。 我使用这种方法来检查我的服务器是否在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_
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工作一样停止它?
我希望我解释得足够好。
Thx预付款!:) 您可以使用以下批处理文件进行尝试:
@echo off
set "Process=server_64.exe"
Title Checking for status of this process ===^> "%Process%"
tasklist /nh /fi "imagename eq %Process%" 2>nul |find /i "%Process%" >nul
IF '%ERRORLEVEL%' EQU '1' (
Color 0B
echo.
echo "%Process%" is not running
) else (
Color 0C
echo.
echo Stopping "%Process%" ...
taskkill /F /IM "%Process%" > nul 2>&1
)
pause
您可以使用以下批处理文件进行尝试:
@echo off
set "Process=server_64.exe"
Title Checking for status of this process ===^> "%Process%"
tasklist /nh /fi "imagename eq %Process%" 2>nul |find /i "%Process%" >nul
IF '%ERRORLEVEL%' EQU '1' (
Color 0B
echo.
echo "%Process%" is not running
) else (
Color 0C
echo.
echo Stopping "%Process%" ...
taskkill /F /IM "%Process%" > nul 2>&1
)
pause
天哪,我找到了解决办法,这是一头野兽
tasklist /fi "imagename eq cmd.exe" /v /fo table /nh | find /i "Broker" 2>nul
但最重要的是,我不能得到愚蠢的输出。。。
当我试图使它静音时,它总是给我错误级别1
tasklist /fi "imagename eq cmd.exe" /v /fo table /nh 2>nul | find /i "Broker" 2>nul
那么这有什么问题^ 天哪,我找到了解决办法,这是一头野兽
tasklist /fi "imagename eq cmd.exe" /v /fo table /nh | find /i "Broker" 2>nul
但最重要的是,我不能得到愚蠢的输出。。。
当我试图使它静音时,它总是给我错误级别1
tasklist /fi "imagename eq cmd.exe" /v /fo table /nh 2>nul | find /i "Broker" 2>nul
那么这有什么问题^
IF%ERRORLEVEL%==1(
或IF ERRORLEVEL 1(
尽管这些IF
不会给出相同的结果,请参阅和@JosefZ,最好是IF%ERRORLEVEL%eq 1
(当两个表达式都是纯数字时,==
运算符强制进行字符串比较,eq
进行数字比较;如果ERRORLEVEL 1实际上意味着如果ERRORLEVEL>=1
,但某些命令也可能使用负值ERRORLEVEL
值)…该脚本适用于exe文件,就像它不适用于批处理文件一样。IF%ERRORLEVEL%==1(
或IF ERRORLEVEL 1(
尽管这些IF
不会给出相同的结果,请参阅和@JosefZ,最好是IF%ERRORLEVEL%eq 1
(当两个表达式都是纯数字时,==
运算符强制进行字符串比较,eq
进行数字比较;如果ERRORLEVEL 1实际上意味着如果ERRORLEVEL>=1
,但某些命令也可能使用负值ERRORLEVEL
值)…该脚本适用于exe文件,就像它不适用于批处理文件一样。你搞错了,也许我解释得不够好。我需要检查任务列表中运行的批处理文件不是运行良好的exe文件。我有一个启动phyton脚本的批处理文件,我想检查实际运行该脚本的cmd。当我在我使用“server|u 64.exe”的地方,我尝试使用“xyz.bat”它不会工作。我甚至尝试将批处理编译为exe文件以在任务列表中找到它,但由于某些原因它不会工作。任务列表/FI“WINDOWTITLE eq Administrator:Broker”2>NUL | find/i/N“cmd.exe”2> NUL不起作用我很沮丧,因为谷歌根本帮不了我,如果我使用“管理员:”也没什么区别作为前缀或不是两者都给了我错误级别1 duh…你搞错了,也许我解释得不够好。我需要检查任务列表中的批处理文件,该批处理文件运行的不是运行良好的exe文件。我有一个启动phyton脚本的批处理文件,我想检查实际运行该脚本的cmd。当我尝试使用“xyz.bat”时在我使用“server_64.exe”的地方,它不会工作。我甚至试图将批处理编译成一个exe文件,以便在任务列表中找到它,但由于某些原因它不会工作。任务列表/FI“WINDOWTITLE eq管理员:Broker”2>NUL | find/i/N“cmd.exe”2>NUL不会工作我感到沮丧,因为谷歌根本帮不了我,如果我使用xD,它也不会有什么不同管理员:“作为前缀或不作为前缀两者都给了我错误级别1 duh…duh我真的很抱歉!它只是>nul而不是0f 2>nulduh我真的很抱歉!它只是>nul而不是0f 2>nul!”