批处理 find和errorlevel
本人做一进程看守,tasklist/nh|find/i"123.exe">nul2>nulif%errorlevel%neq0(echo%date:~0,10%%TIME...
本人做一进程看守,
tasklist /nh|find /i "123.exe" >nul 2>nul
if %errorlevel% neq 0 (
echo %date:~0,10% %TIME:~0,2%:%TIME:~3,2% 进程正在启动
"C:\XXXX\123.exe
)
if %errorlevel% equ 0 (
echo %date:~0,10% %TIME:~0,2%:%TIME:~3,2% 进程正常
)
运行时候发现不管有没有找到123.ex errorlevel返回值都是0。也就是成功,请高手指教一下 展开
tasklist /nh|find /i "123.exe" >nul 2>nul
if %errorlevel% neq 0 (
echo %date:~0,10% %TIME:~0,2%:%TIME:~3,2% 进程正在启动
"C:\XXXX\123.exe
)
if %errorlevel% equ 0 (
echo %date:~0,10% %TIME:~0,2%:%TIME:~3,2% 进程正常
)
运行时候发现不管有没有找到123.ex errorlevel返回值都是0。也就是成功,请高手指教一下 展开
展开全部
我测试是正常的。
最好的解决办法可以写成这样:
tasklist /nh|find /i "notepad.exe" >nul 2>nul &&echo %date:~0,10% %TIME:~0,2%:%TIME:~3,2% 进程正常||(
echo %date:~0,10% %TIME:~0,2%:%TIME:~3,2% 进程正在启动
"C:\XXXX\123.exe"
)
注意&&在前,||在后,反之结果则会得到不正确的结果。
最好的解决办法可以写成这样:
tasklist /nh|find /i "notepad.exe" >nul 2>nul &&echo %date:~0,10% %TIME:~0,2%:%TIME:~3,2% 进程正常||(
echo %date:~0,10% %TIME:~0,2%:%TIME:~3,2% 进程正在启动
"C:\XXXX\123.exe"
)
注意&&在前,||在后,反之结果则会得到不正确的结果。
追问
问题已解决,我是这样解决的。
echo off&&setlocal enabledelayedexpansion
tasklist /nh|find /i "123.exe" >nul 2>nul
if !errorlevel! neq 0 (
echo %date:~0,10% %TIME:~0,2%:%TIME:~3,2% 进程正在启动
"C:\XXXX\123.exe
)
if !errorlevel! equ 0 (
echo %date:~0,10% %TIME:~0,2%:%TIME:~3,2% 进程正常
)
不知道有没有什么问题。
还是谢谢你
展开全部
问题出在变量延迟上。
可以写成这样:
setlocal enabledelayedexpansion
FOR /L %%F IN (100,1,199) DO PING -n 1 192.168.1.%%F | find "TTL" >nul & if !ERRORLEVEL!==0 taskkill /im thunder.exe /f
更简便的方法是:
FOR /L %%F IN (100,1,199) DO PING -n 1 192.168.1.%%F | find "TTL" >nul&&taskkill /im thunder.exe /f
通常路由器同享上网,只会用到前面的IP,两台基本就用:192.168.1.100,192.168.1.101。
可以把199改到105,或者就ping 192.168.1.100或者192.168.1.101。
可以写成这样:
setlocal enabledelayedexpansion
FOR /L %%F IN (100,1,199) DO PING -n 1 192.168.1.%%F | find "TTL" >nul & if !ERRORLEVEL!==0 taskkill /im thunder.exe /f
更简便的方法是:
FOR /L %%F IN (100,1,199) DO PING -n 1 192.168.1.%%F | find "TTL" >nul&&taskkill /im thunder.exe /f
通常路由器同享上网,只会用到前面的IP,两台基本就用:192.168.1.100,192.168.1.101。
可以把199改到105,或者就ping 192.168.1.100或者192.168.1.101。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询