【问题标题】:how to edit this batch file to check if exe is running如何编辑此批处理文件以检查 exe 是否正在运行
【发布时间】:2017-04-03 01:43:00
【问题描述】:
for /r %%i in (*.exe) do start "" /b "%%i"

在我启动之前如何编辑它以查看 exe 是否正在运行?

【问题讨论】:

    标签: windows batch-file command-line terminal


    【解决方案1】:
    for /r %%i in (*.exe) do tasklist|findstr /i /b /L /c:"%%~nxi" >nul&if errorlevel 1 start "" /b "%%i"
    

    这会执行tasklist,将结果发送到findstr,它会查找/b/L 开头的行,字面意思是/C: 字符串“%%i”/i,无论大小写如何(dispose任何输出)。如果findstr 没有找到匹配的字符串,则将errorlevel 设置为1。if 语句检测errorlevel 何时为1 或更大,如果未找到,则启动它。

    【讨论】:

    • 您也可以使用条件执行将其缩短一点。 for /R %%i in (*.exe) do tasklist|findstr /i /b /L /c:"%%i" >nul ||start "" /b "%%i"
    • 不起作用,因为 %%i 是 exe 的路径,而不是 .exe 名称本身,所以它会返回 false,因为 tasklist|findstr 只返回 exe 名称而不是路径
    • OK - 已修复(在findstr 字符串中的i 之前插入~nx 以仅选择名称和扩展名。
    • @FamilyFamily,在您的空闲时间阅读FOR 命令的帮助。它将向您展示可用于操作 FOR 变量的所有修饰符。它位于帮助的最后。
    猜你喜欢
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2017-05-18
    相关资源
    最近更新 更多