Escrito em June 10th, 2009 as 9:22 am por Guilherme Bacellar

0 Comentários

Vamos falar um pouco de argumentos em console application.

As aplicações console são muito flexiveis e permitem que possamos desenvolver desde robos que são executados por agendamento até aplicações rápidas de testes.

Em determinadas situações precisamos passar parâmetros para as aplicações console, então, vamos lá.

C#

using System;

namespace ConsoleApplication21
{
    class Program
    {
        static void Main(string[] args)
        {
            foreach (string arg in args)
            {
                Console.WriteLine(arg);
            }
        }
    }
}

VB.NET

Module Module1

Sub Main(ByVal args As String())

    For Each arg As String In args
        Console.WriteLine(arg)
    Next

End Sub

End Module

Esse código permite que os parâmetros enviador possam ser vistos pelo prompt de comando ao utilizar.

Para tanto podemos testar da seguinte forma no prompt de comando:

MinhaConsoleApplication.exe -a -r -va

O resultado será

-a
-r
-va

Esses são parâmetros simples, mas, podemos passar parâmetros complexos como “-path=c:\windows\temp\tempI.tmp”. Para tanto, na hora da detecção dos parâmetros, o -path será exatamente como descrito, pois, o separador de parâmetros é o espaço em branco ” “, então, um simples split resolve. Exemplo:

C#

using System;

namespace ConsoleApplication21
{
    class Program
    {
        static void Main(string[] args)
        {
            foreach (string arg in args)
            {
                if (arg.IndexOf("-path", StringComparison.InvariantCultureIgnoreCase) >= 0)
                {
                    string[] paramData = arg.Split('=');
                    Console.WriteLine("Parâmetro: " + paramData[0]);
                    Console.WriteLine("Valor: " + paramData[1]);
                }
                else
                {
                    Console.WriteLine("Parâmetro: " + arg);
                    Console.WriteLine("Valor: Sem Valor");
                }
            }
        }
    }
}

VB.NET

Module Module1

Sub Main(ByVal args As String())

    For Each arg As String In args
        If (arg.IndexOf("-path", StringComparison.InvariantCultureIgnoreCase) >= 0) Then
            Dim paramData As String() = arg.Split("=")
            Console.WriteLine("Parâmetro: " + paramData(0))
            Console.WriteLine("Valor: " + paramData(1))
        Else
            Console.WriteLine("Parâmetro: " + arg)
            Console.WriteLine("Valor: Sem Valor")
        End If

    Next

End Sub

End Module

Para usar esse código no prompt de comando:

MinhaConsoleApplication.exe -a -r -va -path=c:\windows\temp\tempI.tmp

O resultado esperado será:

Parâmetro: -a
Valor: Sem Valor
Parâmetro: -r
Valor: Sem Valor
Parâmetro: -va
Valor: Sem Valor
Parâmetro: -path
Valor: c:\windows\temp\tempI.tmp

Até o Próximo

Posts Relacionados:

  1. On Error Resume Next
  2. Tipos Nulos (Nullable Value Types)
  3. System.IDisposable e using()
  4. .Net Framework Inside : Comparações Avançadas em .NET (IEquatable)
  5. Manipulando Arquivos e Diretórios no .NET
, ,

Be the first to start a conversation

Deixa uma Resposta

znjdb32s6g