none
Script em modo siliencioso RRS feed

  • Pergunta

  •  

    Bom dia a todos.

    Tenho um .bat que é executado por todos usuários da rede ao fazer logon.

    Quero saber se tem como eu deixar esse .bat de modo silencioso, para não aparecer o prompt de comando quando o .bat estiver executando.

     

    Att

    Elias Rodrigues

    terça-feira, 19 de fevereiro de 2008 14:32

Respostas

  • Olá,


    você também pode usar um Wrapper em VBS, que nada mais é do que um script em VBS que chama o BAT em segundo plano.

    set objSh = CreateObject("WScript.Shell")
    objSh.Run "cmd /k \\teste\teste\teste.bat", 0



    []s,

    --
    Vinicius Canto
    MVP Windows Server - Admin Frameworks
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Bacharelando em Ciências da Computação - USP

    Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com
    terça-feira, 4 de março de 2008 10:47
    Moderador

Todas as Respostas

  • ola

    Já experimentou colocar "@echo off" no começo do script bat?

    Atenciosamente.
    domingo, 2 de março de 2008 16:50
  • Sim ja estou usando. Mas mesmo assim a janela esta aparecendo durante a execução das rotinas.
    Valeu pela força

    Att
    Elias Rodrigues
    segunda-feira, 3 de março de 2008 11:01
  • ola,

    Seu script esta gerando alguma mensagem no console? talvez seja isso aqui eu testei e funcionou ele somente abre a janela quando se dah um echo para o usuario.

    Atenciosamente.
    segunda-feira, 3 de março de 2008 11:25
  • As linhas são essa! É um script para instalação do agente do cacic nas estações. Eu queria que a janela do prompt não aparecesse durante a execução, pq o usuário pode fechar a janela durante a execução.


    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
    @echo off
    REM
    SET CHKSISEXE=%WINDIR%\chksis.exe
    SET CACIC2EXE=c:\cacic\cacic2.exe
    SET CACIC2DIR=c:\cacic
    SET RAIZCACIC=c:\cacic
    cls

    @echo Aguarde...Verificando instalacao do CACIC
    c:
    cd\
    REM "Verifica sejá se xiste apasta c:\cacic. Se nao existe, cria e copia os arquivos docacic."

    if NOT EXIST %CHKSISEXE% (
    @echo Cacic nao esta instalado.Instalando...
    REM "Cria estrutura de diretorios completa"
    md cacic
    cd c:\cacic

    md temp
    md modulos
    REM "Copia o txt que contem os comandos ftp a serem executados para copiar os mdulos do
    REM servidor Cacic. Este arquivos necessario no windows para execucao de varios comandos via
    REM ftp(uso:ftp -sTongue Tiedcripftp.txt)"
    cd c:\cacic\temp
    copy \\172.17.35.5\cacic\scriptftp.txt c:\cacic\temp

    REM "Faz a autenticacao no servidor FTP e transfere os arquivos de instalacao do agente Cacic"
    REM "Esse procedimento e executado pela sequenciade comandos contidos no arquivo scriptftp.txt"
    ftp -vin -s:c:\cacic\temp\scriptftp.txt
    REM "Apos a copia dos arquivos p c:\cacic\temp, os devidos arquivo sao movidos para os devidos
    REM "diretrios, e em seguida executado chkcacic.exe. Em seguida move cacic2.exe para c:\cacic"

    move chkcacic.* %RAIZCACIC%
    move chksis.* %WINDIR%
    move col*.exe %RAIZCACIC%\modulos
    cd %RAIZCACIC%
    chkcacic.exe
    move %RAIZCACIC%\temp\cacic2.exe %CACIC2DIR%
    )

    REM "Estando instalados os arquivos em seus respectivos diretrios, sao executados os arquivos
    REM cacic2.exe e chksis.exe"
    @echo Cacic ja esta instalado. Iniciando...
    %CACIC2EXE%
    %CHKSISEXE%


    cls
    exit
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    segunda-feira, 3 de março de 2008 11:42
  • Ola,

     

    Retire as mensagem de @echo e echo como você não quer que o usuário se intrometa e nem perceba que esta sendo executado algo porque ficar mostrando mensagem para ele? ele abre o cmd porque tem mensagem. Espero ter ajudado.

     

    Atenciosamente.

     

     

    segunda-feira, 3 de março de 2008 15:31

  • Eu tirei todos @echo e echo. Não esta aparecendo no prompt as rotinas que esta acontecendo. Mas continua aparencendo o prompt. Eu queria que não aparecesse nda na tela do usuário enquento o script fosse executado.

    Grato!
    segunda-feira, 3 de março de 2008 18:06
  • Ola,


    Tenta usar o comando

    c:\> start /B script.bat

    veja se é isto que você quer!


    Atenciosamente.
    segunda-feira, 3 de março de 2008 20:24
  • Olá,


    você também pode usar um Wrapper em VBS, que nada mais é do que um script em VBS que chama o BAT em segundo plano.

    set objSh = CreateObject("WScript.Shell")
    objSh.Run "cmd /k \\teste\teste\teste.bat", 0



    []s,

    --
    Vinicius Canto
    MVP Windows Server - Admin Frameworks
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Bacharelando em Ciências da Computação - USP

    Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com
    terça-feira, 4 de março de 2008 10:47
    Moderador

  • Bom dia.
    Vinicius, essa ideia funcionou com um porém. Com usuário que não tem privilégio de admin na rede ao executar o script apresenta o seguinte erro: 

    --------------------------------------------------------------------
    script: \\meu_pdc\NETLOGON\script.vbs
    linha: 2
    Caract: 1
    Erro: 0xFFFFFFFF
    Código: FFFFFFFF
    Origem: (null)
    --------------------------------------------------------------------

    Pode ser problema de permissão?
    Tendo em vista que esse script chama dois executaveis da OfficeScan da TrendMicro e o agente do CACIC.
    Tem como forçar a execução sem verificar as permissões?

    Grato
    quarta-feira, 5 de março de 2008 12:17
  • Olá, parabéns pelo seu script. Gostaria de saber se há a possibilidade de me enviar o exemplo do seu script de cópia do ftp. Pois não consegui fazer este funcionar.
    sexta-feira, 15 de outubro de 2010 00:15
  • Vinicius Canto,

    achei esse post e é quase o que quero, não encontrei o que quero na net. Então é o seguinte

    tenho a linha de comando  em um arquivo excel2016 e quero executaro comando prompt em rede para executar um arquivo .bat.

    o meus arquivos, inclusive o .bat estão nessa pasta nesse caminho, mas também estão no comando shell, porem toda vez que executa o shell o prompt abre no camimho c:\users\MeusDocumentos e não no caminho que estão o arquivo .bat, e ai não junta os arquivos txt

    se tiver uma resposta me manda um email celiomendonca@yahoo.com.br

      'caminho = "\\go9999nt001\sr\Arquivos\PLANEJAMENTO\CELIO\MinhasMacros\ProjetoGuiaComando\Relatorios\"
      
      Shell "C:\GUIAC\Relatorios\junta_todos_txt.bat", vbNormalFocus

    desde ja , obrigado

    celio mendonca

    Anapolis/GO

    terça-feira, 8 de janeiro de 2019 19:02
  • É muito fácil, nem precisa fazer o que a galera ensinou, tem um programa que transforma o arquivo .BAT em um .EXE chamado Quick Batch File Compile, sendo que você digita os comando como se fosse um arquivo .bat depois vai em opções e escolhe o 'modo fantasma' e manda compilar para virar um executável, ou seja, ele vai executar sem mostrar nenhuma janela, daí basta colocar ele pra iniciar com windows que dá certo, espero que ajude.
    sábado, 6 de abril de 2019 13:55
  • inicie cada processo com start e finalize o arquivo com exit

    O prompt só vai piscar na tela.

    terça-feira, 23 de abril de 2019 06:46
  • Olá!

    Caso ainda tenha dificuldades em executar um batch como administrador, creio que este pode lhe auxiliar, ok!

    https://support.microsoft.com/pt-br/topic/executar-um-arquivo-em-lotes-com-privil%C3%A9gios-de-administrador-e1b4b29e-ce46-df49-a9eb-aa292d3d22c5

    Att. Fábio Cândido

    terça-feira, 16 de março de 2021 21:27