none
Extrair String de Uma Linha Dentro de Um Arquivo RRS feed

  • Pergunta

  • Bom dia Pessoal,

    Estou criando um script para fazer backup de alguns diretorios via powershell, porém para um determinado diretório, eu quero acessar um arquivo, ler uma linha e retornar uma string com parte da linha.

    Arquivo XPTO tem a seguinte estrutura:

    ;===============================================================
    ;--------------------AMBIENTE DE PRODUÇÃO-----------------------
    ;===============================================================

    [C4P12LEAD]
    SourcePath=E:\Outsourcing\Clientes\c4p12lead\apo\20180828
    RootPath=E:\Outsourcing\Clientes\c4p12lead\protheus-data
    CtreeRootPath=E:\Outsourcing\Clientes\c4p12lead\protheus-data
    StartPath=\system\
    x2_path=
    RpoDb=top
    RpoLanguage=por
    RpoVersion=120
    LocalFiles=ctree
    Trace=0

    Preciso retornar o caminho da linha que contém o SourcePath (RootPath=E:\Outsourcing\Clientes\c4p12lead\apo\20180828)

    Preciso retornar em uma variável o caminho: E:\Outsourcing\Clientes\c4p12lead\apo\20180828

    Algo mais ou menos assim:

    $apo = E:\Outsourcing\Clientes\c4p12lead\apo\20180828

    Como farei isso?

    Alguém poderia me ajudar por favor?

    Obrigado.

    terça-feira, 26 de maio de 2020 13:43

Respostas

  • Para utilizar substring, você precisa uma variável do tipo string. Nesse caso pode fazer isso:

    [string]$SourceApo = Get-Content $SourceFolder\bin[...]

    ou

    Pode remover o trecho que não precisa do caminho

    $apo = $SourceApo -replace "SourcePath=",""

    terça-feira, 26 de maio de 2020 15:59

Todas as Respostas

  • Olá, 

    essa linha que procura sempre inicia com RootPath? Caso positivo, pode tentar algo assim

    Get-Content ArquivoXPTO | Select-String RootPath

    terça-feira, 26 de maio de 2020 13:49
  • Opa,

    Sim, sempre iniciará com SourcePath, até trouxe a linha completa, mas preciso que traga só o caminho.

    Preciso que a $SourceApo = E:\Outsourcing\Clientes\c4p12lead\apo\20180828


    terça-feira, 26 de maio de 2020 14:03
  • O metodo $a.Substring() não funciona mais?

    Tentei utiliza-lo e deu a mensagem abaixo:

    $apo = $SourceApo.Substring(12,50)

    Falha na invocação do método porque [Microsoft.PowerShell.Commands.MatchInfo] não contém um método denominado
    'Substring'.
    No linha:1 caractere:1
    + $apo = $SourceApo.Substring(12,50)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
        + FullyQualifiedErrorId : MethodNotFound

    terça-feira, 26 de maio de 2020 15:12
  • Para utilizar substring, você precisa uma variável do tipo string. Nesse caso pode fazer isso:

    [string]$SourceApo = Get-Content $SourceFolder\bin[...]

    ou

    Pode remover o trecho que não precisa do caminho

    $apo = $SourceApo -replace "SourcePath=",""

    terça-feira, 26 de maio de 2020 15:59
  • Muito Obrigado Fernando,

    Utilizei a segunda opção do -replace.

    Abraços,

    terça-feira, 26 de maio de 2020 16:43