Cmd 检查正在运行的lua脚本
有几个LUA脚本必须经常执行。为了控制它的状态,我编写了一个小的cmd/batch文件:Cmd 检查正在运行的lua脚本,cmd,Cmd,有几个LUA脚本必须经常执行。为了控制它的状态,我编写了一个小的cmd/batch文件: @echo off setlocal enableextension enabledelayedexpansion set LIST=C:\123\lua_list set EXEC_CMD="lua.exe" for /f %%a in (%LIST%) do ( wmic process where "name like '%EXEC_CMD%'" get commandline | findstr
@echo off
setlocal enableextension enabledelayedexpansion
set LIST=C:\123\lua_list
set EXEC_CMD="lua.exe"
for /f %%a in (%LIST%) do (
wmic process where "name like '%EXEC_CMD%'" get commandline | findstr /i %%a > nul
if errorlevel 1 (
echo down
) else (
echo up
)
)
执行时,返回“get此时意外”
直接在命令提示符下正确运行带有“wmic”的行。错误在哪里
我试着用
- errorlevel==1
- 直接使用“类似于'lua.exe'的名称”
- (名称=%EXEC\u CMD%)
- “名称=%EXEC\u CMD%”
lua_列表包含*.lua脚本的完整路径,一行一行 这是您在命令中的双引号:
set EXEC_CMD="lua.exe"
其结果是:
wmic process where "name like '"lua.exe"'" get commandline
有太多的双引号
将批次更改为使用条件执行编辑新版本
:: Q:\Test\2018\10\26\SO_53008258.cmd
@echo off & setlocal enableextensions enabledelayedexpansion
set "LIST=C:\123\lua_list"
set "EXEC_CMD=lua.exe"
for /f %%a in (%LIST%) do (
wmic process where "name like '%EXEC_CMD%'" get commandline|findstr /i /c:"%%~a" >nul 2>&1 && (
echo %%a up) || ( echo %%a down)
)
在此使用firefox.exe而不是lua.exe成功测试。findstr默认处于常规表达式模式->使用/C:进行精确匹配。正如我所说,我已经尝试使用“像‘lua.exe’这样的名称”。相同的error@hAh0L13请参见上面的更改。