【问题标题】:Why cant i use wildcards in TASKLIST /FI "WINDOWTITLE" function/filter?为什么我不能在 TASKLIST /FI "WINDOWTITLE" 函数/过滤器中使用通配符?
【发布时间】:2012-02-28 07:36:33
【问题描述】:

第一次发帖。

我正在编写一个批处理文件来检查打开窗口的窗口标题,如果它们与我想要的不匹配,则关闭它们并重新打开它们。 (主要原因是“页面无法加载”时自动重启浏览器)。

我的问题出在这里...

tasklist /FI "WINDOWTITLE eq Kingdoms of Camelot on Facebook - Mozilla Firefox"2>NUL | find /I /N "firefox.exe"2>NUL
    if "%ERRORLEVEL%"=="0" goto runningfire
    if "%ERRORLEVEL%"=="1" goto notrunningfire

这会检查打开的窗口,并将它们的标题与“Facebook 上的卡米洛特王国 - Mozilla Firefox”进行比较。这很好用,直到!!!

对我来说主要的烦恼是每当您收到 Facebook 通知/好友请求/消息时,它会将标题栏更改为 (1) Kingdoms..... 然后脚本不起作用。

我在这方面花费了 AGES,主要是因为我在这方面非常新手,而且我对批处理文件和脚本知之甚少。

所以我的问题是……

是否可以在标题要求的开头有效地添加通配符...(注意标题前面的 *)

tasklist /FI "WINDOWTITLE eq *Kingdoms of Camelot on Facebook - Mozilla Firefox"2>NUL | find /I /N "firefox.exe"2>NUL | find /I "[6]"2>NUL
    if "%ERRORLEVEL%"=="0" goto runningfire
    if "%ERRORLEVEL%"=="1" goto notrunningfire

这是显而易见的解决方案,但它根本不起作用,返回错误:无法识别搜索过滤器。

我也试过 3 ???表示 (1) 和 (2) 等,但它们也不起作用....

有什么想法吗?请把它瞄准一个完全的菜鸟。

【问题讨论】:

    标签: batch-file window title tasklist


    【解决方案1】:

    你为什么不试试

    tasklist /fi "imagename eq firefox.exe" /v | find /i "Kingdoms of Camelot on Facebook - Mozilla Firefox" 2>NUL
    if ....
    

    我正在使用相同的方法来获取具有相同窗口标题前缀的进程的 pid 并且它可以工作。

    PS:根据我对 tasklist 命令的测试,它无法识别通配符语法

    【讨论】:

    • 任务列表非常适合获取所有带有输出的 cmd.exe 或 java.exe 子进程
    【解决方案2】:

    这行得通。要在批处理文件中使用它,请添加插入符号 (^):

    tasklist /fi "imagename eq firefox.exe" /v ^| find /i "Kingdoms of Camelot on Facebook - Mozilla Firefox" 2>NUL
    

    【讨论】:

      猜你喜欢
      • 2016-07-14
      • 2019-02-23
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多