我有一个.bat,其中包含一个命令,用于在运行第二个运行超时的命令之前检查firefox是否已打开。
@echo off
set programName=firefox.exe
tasklist /FI "IMAGENAME eq %programName%" 2>NUL | find /I /N "%programName%">NUL
if "%errorlevel%"=="0" goto delayloop
if "%errorlevel%"=="1" start %programName% goto delayloop
:delayloop
timeout /t 600 /nobreak
goto loop
问题是该命令使用2个新选项卡打开firefox,它们是goto.com和delayloop.com,而不是使用firefox默认值:“显示上次我的窗口和选项卡”。
任何想法如何“告诉”CMD goto delayloop
不是在Firefox中打开的标签。
尽管在标签中理解goto delayloop
作为新闻地址,但.bat总是转到下一个命令`delayloop。
如何更改go以防止打开此2个新闻标签。
答案 0 :(得分:1)
你需要使用:
if "%errorlevel%"=="1" (
start %programName%
goto delayloop
)
否则批处理会将goto和delayloop视为参数。
答案 1 :(得分:1)
批次完全正确,你告诉它做什么:
preSelected = ['module-001', 'module-003', 'module-027'];
[].forEach.call(preSelected, function(val){
$("#my-table input[type='checkbox'][value='"+val+"']").prop('checked', true);
});
如果errorlevel为1,则使用参数(input
和 if "%errorlevel%"=="1" start %programName% goto delayloop
(%programName%
)
IF仅支持一个命令,因此您必须对命令进行“分组”(parantheses中的几个命令在逻辑上被视为一个命令):
goto
或作为单行:
delayloop