none
Executar comandos do CMD? RRS feed

  • Discussão Geral

  • Olá pessoal, no meu programa eu preciso executar o seguinte comando do CMD (Batch):

    sc config wuauserv start= auto
    sc config bits start= auto
    sc config DcomLaunch start= auto
    net stop wuauserv
    net start wuauserv
    net stop bits
    net start bits
    net start DcomLaunch

    Eu sempre utilizei este seguinte código para executar um comando:

     Private Sub ExecutarComando()
            Dim comando As String = "comando do cmd"
            Shell("cmd.exe /c " & comando)
        End Sub
    Porém, neste caso há 8 linhas de comando. Como faço para realizar esta tarefa? Obrigado.



    • Editado Free4k domingo, 30 de março de 2014 21:34
    • Tipo Alterado Giovani Cr sexta-feira, 4 de abril de 2014 19:47
    • Tipo Alterado Giovani Cr sexta-feira, 4 de abril de 2014 19:47
    domingo, 30 de março de 2014 21:21

Todas as Respostas

  • Olá Howar,

    colocar em um laço não é uma opção?


    Wennder Santos

    domingo, 30 de março de 2014 22:38
  • Como assim "laço"?
    segunda-feira, 31 de março de 2014 00:27
  • Como assim "laço"?

    Uma estrutura de repetição Howar.

    Dim str As String() = New String() {"sc config wuauserv start= auto", "sc config bits start= auto", "sc config DcomLaunch start= auto", "net stop wuauserv", "net start wuauserv", "net stop bits", "net start bits", "net start DcomLaunch"}; Private Sub ExecutarComando(arrayCommandos As String()) For Each str As var In arrayCommandos

    Next Shell("cmd.exe /c" & str); End Sub


    mas a idéia é vc passar um array de strings como parametro pra sua Sub (função) e concatenar

    o comando com linha "cmd.exe"

    Não sei se a sintaxe está correta pq o conversor de C# pra VB meio que falhou em algumas partes, espero que vc tenha pegado a idéia principal


    • Editado Eduardo Cury segunda-feira, 31 de março de 2014 00:45
    segunda-feira, 31 de março de 2014 00:45
  • Isso mesmo, uma estrutura de repetição.


    Wennder Santos

    segunda-feira, 31 de março de 2014 03:32
  • Cara que conversor tu usou? Ficou uma mistura de c# com vb kk...

    Vou dar uma arrumada:

    Dim str() As String = {"sc config wuauserv start= auto", _
    "sc config bits start= auto", "sc config DcomLaunch start= auto", _
    "net stop wuauserv", "net start wuauserv", "net stop bits", _
    "net start bits", "net start DcomLaunch"}
    
    Private Sub ExecutarComando(arrayCommandos() As String)
         For Each str As String In arrayCommandos
                Shell("cmd.exe /c" & str)
         Next
    End Sub
    
    


    Herbert Lausmann

    segunda-feira, 31 de março de 2014 10:12
  • Herbert, o da telerik.

    Ele tava dando unexpected EOF, daí eu fui passando as coisas devagar pra ele, ao invés do código todo, e ele foi me devolvendo pedaços

    segunda-feira, 31 de março de 2014 12:24
  • Obrigado, como faço para ativar esta função em um Button por exemplo?
    segunda-feira, 31 de março de 2014 12:59
  • Olá,

    crie o laço dentro do evento Click() do button. Você já sabe executar o comando, só precisa criar o laço, caso não saiba como criar laços, você encontrará exemplos de monte na internet. É uma coisa bem simples. Se mesmo com os exemplos que encontrar você ainda não conseguir resolver, volte e pergunte que te ajudo, mas, tente sozinho primeiro.



    Wennder Santos




    segunda-feira, 31 de março de 2014 13:05
  • Herbert, o da telerik.

    Ele tava dando unexpected EOF, daí eu fui passando as coisas devagar pra ele, ao invés do código todo, e ele foi me devolvendo pedaços

    Cara, no site developerfusion tem um conversor filé, muito bom mesmo eu uso com frequência inclusive para converter códigos grandes e por inteiro:

    Conversor de código C# para VB.Net e vice-versa | Herbert.Lausmann


    Herbert Lausmann

    segunda-feira, 31 de março de 2014 13:13
  • Ja vi esse conversor, o unico problema dele é que quando ele recebe uma cadeia de caracteres que eu não consegui identificar qual é ainda, ele não trata como nada, ele fica tentando converter como código e isso, neste site, gera um loading eterno sem msg de erro

    Na telerik pelo menos ele fala que não conseguiu e acusa o erro rs, eu usava o developersfusion antes também

    segunda-feira, 31 de março de 2014 13:43
  • Ja vi esse conversor, o unico problema dele é que quando ele recebe uma cadeia de caracteres que eu não consegui identificar qual é ainda, ele não trata como nada, ele fica tentando converter como código e isso, neste site, gera um loading eterno sem msg de erro

    Na telerik pelo menos ele fala que não conseguiu e acusa o erro rs, eu usava o developersfusion antes também

    kkk estranho, eu nunca tive esse problema e olha que as vezes eu converto uns códigos sinistros. Mas, vale você dar uma olhada de novo nele, porque com o tempo vão fazendo melhorias...

    Herbert Lausmann

    segunda-feira, 31 de março de 2014 14:01
  • Olá, descobri o que é, porém agora estou mais perdido que antes...
    sexta-feira, 4 de abril de 2014 23:06
  • Olá, descobri o que é, porém agora estou mais perdido que antes...

    Por favor, explique melhor sua situação atual para podermos ajuda-lo.

    Herbert Lausmann

    sábado, 5 de abril de 2014 10:55
  • Descobri o que é laço, porém não sei como aplicar a esta situação.
    sábado, 5 de abril de 2014 11:38
  • Descobri o que é laço, porém não sei como aplicar a esta situação.

    Ok, você pretende executar esses comando através de um clique de um botão do form?

    Se for, é só colocar o código abaixo no evento Click do botão:

    Dim arrayCommandos() As String = {"sc config wuauserv start= auto", _
    "sc config bits start= auto", "sc config DcomLaunch start= auto", _
    "net stop wuauserv", "net start wuauserv", "net stop bits", _
    "net start bits", "net start DcomLaunch"}
    
    For Each str As String In arrayCommandos
         Shell("cmd.exe /c " & str)
    Next


    Herbert Lausmann

    sábado, 5 de abril de 2014 11:56
  • Funcionou, obrigado!
    sábado, 5 de abril de 2014 12:06
  • E como ficaria este codigo em C#?
    terça-feira, 7 de abril de 2015 01:43