首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查运行lua脚本

检查运行lua脚本
EN

Stack Overflow用户
提问于 2018-10-26 10:52:35
回答 1查看 300关注 0票数 0

有几个LUA脚本必须不断地执行。为了控制它的状态,我编写了小cmd/批处理文件:

代码语言:javascript
复制
@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“行正确运行。错误在哪里?

我试着

  • 错误级别== 1
  • “名称类似于'lua.exe'”直接
  • (name=%EXEC_CMD%)
  • "name=%EXEC_CMD%“

lua_list包含指向*.lua脚本的完整路径,一个逐行。

EN

回答 1

Stack Overflow用户

发布于 2018-10-26 11:58:45

这是你在命令中的双重引用:

代码语言:javascript
复制
set EXEC_CMD="lua.exe"

这一评估结果是:

代码语言:javascript
复制
wmic process where "name like '"lua.exe"'" get commandline 

双引号太多了。

将批处理更改为

使用条件执行编辑新版本

代码语言:javascript
复制
:: 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在reguar表达式模式中使用/C:进行精确匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53007127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档