我一直在使用以下脚本来检查特定的命名窗口是否打开。批处理文件,标识命名窗口是否打开,然后关闭它
我是从这个线程: -
How do you test if a window (by title) is already open from the command prompt?
最好我将扩大其他部分关闭窗口,如果它被发现是开放的。
@For /f "Delims=:" %A in ('tasklist /v /fi "WINDOWTITLE eq test.bat - Notepad"') do @if %A==INFO (echo Prog not running) else SET "BREX=Awesome" &echo %BREX%
不幸的是,当我运行这个脚本时,它返回了我的else字符串的三个实例?
有什么办法来减少这种下降到返回一个实例?
1.您正在设置变量'BREX' *和*在同一命令行/块读它,因此需要[延迟膨胀(http://ss64.com/nt/delayedexpansion.html) 。 2.'tasklist'返回两个标题行,这会导致'for/F'循环重复三次;所以添加'skip = 2'选项。 – aschipfl
只需在任务列表中使用/ NH选项。 – Squashman