none
Como criar um BAT?

    Question

  • Utilizei um Windows Form Application para criar um formulário, agora preciso montar uma bat com o conteúdo desses textBoxs criados.

     

    Ex: O usuário clicara em um botão e o mesmo gera e executa um BAT que rodará em paralelo com minha aplicação.

     

    Como montar o bat pelo c#, onde o mesmo seria executado por um click em um botão?

     

     

    OBRIGADO,

     

    Rafael M.

    Thursday, January 24, 2008 11:41 AM

All replies

  • Este codigo é o que contem meu botão

     

    private void button9_Click(object sender, EventArgs e)

    {

    //COntrole para 1 BANCO

    if (Controle == "1") {

    if (AJOB == "0")

    {

    string BAT = '"' + textBox8.Text + '"' + " " + textBox1.Text + " -difData1 " + textBox2.Text + " -e " + comboBox1.Text + " -f " + textBox7.Text;

    MessageBox.Show(BAT);

    }

    else {

    string BAT = '"' + textBox8.Text + '"' + " " + textBox1.Text + " -difData1 " + textBox2.Text + " -c " + textBox6.Text;

    MessageBox.Show(BAT);

    }

    }

     

    }

     

    O que eu preciso é criar uma BAT com a STRING BAT e depois executa-la!!!!

     

    Obrigado

    Thursday, January 24, 2008 4:42 PM
  • Acho que é isso que você precisa:

    Code Snippet

                string bat = "PAUSE";
                using (System.IO.StreamWriter sw = new System.IO.StreamWriter("teste.bat", false))
                {
                    sw.Write(bat);
                }
               System.Diagnostics.Process p = System.Diagnostics.Process.Start("teste.bat");
               //p.WaitForExit()


    Thursday, January 24, 2008 5:07 PM
  • Luciano, era isso mesmo, Muito obrigado.

     

     

    Como utilizar o ProgressBar nesse caso? Enquando meu BAT é rodado ele vai me atualizando o ProgressBar, é possivel?

     

     

     

    Código do BT: 

    EX:

     

    using (System.IO.StreamWriter sw = new System.IO.StreamWriter("teste.bat", false))

    {

    sw.Write(BAT);

    }

    System.Diagnostics.Process q = System.Diagnostics.Process.Start("teste.bat");

    progressBar1.Minimum = 0;

    progressBar1.Maximum = ?;

    progressBar1.Value = 0;

    for (int i= 0; i< progressBar1.Maximum; i++)

    progressBar1.Value = i;

     

     

    q.WaitForExit();

     

     

    ===============================================================================

     

    O que a BAT gera no Pront:

     

    Microsoft Windows XP [versão 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\Documents and Settings\Rafael>"C:\P.exe"
    P Console 5.1.35 beta
    Initializing license.
    Opening workflow C:\PROJ
    ETO C#\PASTATESTE\TESTE_ALTERADO_PROJwfd.wfd  24.1.2008 16:40:20.546
    Status message 0881:Reading config file C:\PROJETO C#\PASTATESTE\PDF.job.
    Status message 0884:Running module PDF - Carta.
    Status message 0120Big SmileataInput: Opening: C:\PROJETO C#\PASTATESTE\BV1CMEnvPD_000016.TXT
    Status message 0120Big SmileataInput: Opening: C:\PROJETO C#\PASTATESTE\BV1CMCartaPS_000022.TXT
    Status message 0120Big SmileataInput: Opening: C:\PROJETO C#\PASTATESTE\reprintProj.csv (Data1)
    Status message 0300Big Smileata SorterTongue Tiedorting Data
    Status message 0307Big Smileata SorterTongue Tiedorted 2 records in 0:00:00.000
    Status message 0045Big Smileata opened (duration 0:00:00.500, records 2).
    Status message 0645:Job started (engine PDF, range 1-end, copies 1, file C:/PROJETO C#/PASTATESTE/teste.
    pdf)
    Warning 0036:Content of Flows.Flow1 too big to fit Pages.Page1.FlowArea1 (record
    :0, page:0). (CARTA)
    Warning 0036:Content of Flows.Flow1 too big to fit Pages.Page1.FlowArea1 (record
    :1, page:0). (CARTA)
    Status message 0003:Job finished (duration 0:00:00.687, sheets 2, sheets/min 174
    .67).
    Complete run time:   0:00:01.281

    C:\Documents and Settings\Rafael>

     

    ==================================================================================

     

    é possivel restagar alguma coisa dessa BAT como por ex: Status message?

     

     

     

    Obrigado,

     

    Rafael M.

     

    Thursday, January 24, 2008 6:13 PM
  • Não sei te responder essa pois nunca vi algo assim funcionando. Acredito que o processo em questão não envie nenhuma mensagem de progresso que você possa usar. Se você precisa de um feedback para o usuário use a ampulheta do mouse, por exemplo, para indicar que o processo ainda está rodando.
    Thursday, January 24, 2008 6:42 PM
  • Luciano da uma olhada novamente, alterei o post colocando os codigos.

     

    Obrigado,

     

    Rafael M.

    Thursday, January 24, 2008 6:48 PM