Como posso ocultar a janela ms-dos ao executar um arquivo .bat?

2

Estou executando um arquivo .bat para o meu script (Scheduled Tak (CronJob)) por minuto. Quando executado, parece janela ms-dos curto período de tempo. Meu código de lote assim:

@ECHO OFF C: \ wamp \ bin \ php \ php5.4.3 \ php.exe -f "C: \ wamp \ www \ tst \ index.php"

Como posso ocultar essa janela quando ela é executada?

    
por prestack 27.11.2012 / 10:02

4 respostas

7

Você pode ocultar a janela com um script VB:

Set objArgs = WScript.Arguments
For Each strArg in objArgs
    Set WshShell = CreateObject("WScript.Shell")
    cmds=WshShell.RUN(strArg, 0, False)
    Set WshShell = Nothing
Next

start c:\runHidden.vbs "C:\wamp\bin\php\php5.4.3\php.exe -f 'C:\wamp\www\tst\index.php'"
    
por 27.11.2012 / 15:10
0

Você pode usar start /min <your command> , que não ocultará a janela, mas a minimizará.

    
por 27.11.2012 / 10:27
0

No Agendador de Tarefas , você pode criar uma tarefa que será executada em outra conta de usuário. Se fizer isso, a janela do lote não aparecerá em seu próprio login.

    
por 27.11.2012 / 10:51
0
echo N > I.tmp & (if "%1"=="Not" (echo Ready > I.tmp & goto :Skip )) &     findstr /c:"Ready" I.tmp & (if not errorlevel 1 (set e=Not))& (if not exist Script.bat Set e=Is) & (set a=) & (set /a a=%random%) & (if "%1"=="Not" goto :Skip) &  (Set a=) & (set b=) & (set Var=) & (set VarA=) & (Set VarB=)& (Set VarC=)& (Set VarD=)  & set /a b=0 & cd "%myfiles%" & set Var=%1 & set VarA=%2 & set VarB=%3 & set VarC=%4 & Set VarD=%5
:9
@shift /1 & set Var=%Var% %1 & set VarA=%VarA% %2 & set VarB=%VarB% %3 & set VarC=%VarC% %4 & Set VarD=%VarD% %5 & (if "%1"=="" goto :8)  &goto :9
:8
Set Var=%Var% & Set VarA=%VarA% & Set VarB=%VarB% & Set VarC=%VarC% & Set VarD=%VarD% & (if not "%1"=="Not" (echo %~nx0 Not %Var% > Script.bat & echo createobject^("Wscript.shell"^).run "cmd.exe /c Script.bat",0,0 > Script.vbe & Wscript //B Script.vbe & timeout -t 1 >NUL & exit) )
:Skip


if exist Script.bat del Script.bat /Q
if exist Script.vbe del Script.vbe /Q

REM Inclua isso no início do seu script.

    
por 25.09.2016 / 15:29