none
Powershell usando replace com palavras com espaço RRS feed

  • Pergunta

  • Ola pessoal,

    eu estou tendo dificuldades em alterar um arquivo xml fazendo replace de palavras com espaço por um texto capturado através de uma variável read-host

    qual seria a adequação para que o powershell entendesse o espaço de "Manager Tool" e alterasse para a variável caputurada na função read-host.

    $SBSInstallFolder = Read-Host -Prompt 'SBS Intallation foler ex.. D:\tool\Adapter'

    (get-content C:\SBSTokens.xml) | foreach-object {$_ -replace 'C:\Manager Tool\Tool+Gyr\Adapter', $SBSInstallFolder} | set-content c:\SBSTokens.xml


    Certified (35) | ITIL | MCP | MCDST | MCSA1 | MCSE1 | MCT | MCTS Sharepoint | MCITP SQL | MCSA Windows 2012 | MTA Security | MCSE Windows 8 | MCSE Windows 2012 | Vencedor do Winthe7.com.br 2009, Quarto lugar Copa de Talentos Microsoft 2010

    quinta-feira, 8 de dezembro de 2016 12:43

Respostas

  • Basta manter as coisas simples...

    $NewPath = Read-Host "Type here your new path"
    (Get-Content C:\Files\File.xml).Replace("C:\Manager Tool\Tool+Gyr\Adapter",$NewPath) | Set-Content C:\Files\File.xml

    • Marcado como Resposta Adriano Neiva quinta-feira, 8 de dezembro de 2016 16:13
    quinta-feira, 8 de dezembro de 2016 15:41

Todas as Respostas

  • Olá. realizei um teste num arquivo txt.

    Não sei se entendi direito, mas eis o que o script abaixo faz considerando um arquivo em que cada linha tem um e somente um path que pode conter espaços em branco ou não:

    - Procura espaços em branco na linha. Se encontrar substitui pelo parâmetro passado via prompt

    - Caso contrário, mantem linha como está.

    [regex]$regex = '\s+'
    
    $SBSInstallFolder = Read-Host -Prompt 'SBS Intallation foler ex.. D:\tool\Adapter'
    
    (get-content sites.txt) | foreach-object {
        if($_ -match $regex) {
            $SBSInstallFolder  
        } else {
            $_
        }
    
    } | set-content sites.txt

    quinta-feira, 8 de dezembro de 2016 14:27
  • Obrigado Mauricio, basicamente eu não quero substituir todos os espaços no xml, eu apenas quero fazer o replace da frase 'C:\Manager Tool\Tool+Gyr\Adapter' por a variável $SBSInstallFolder inputada através do read-host.

    Certified (35) | ITIL | MCP | MCDST | MCSA1 | MCSE1 | MCT | MCTS Sharepoint | MCITP SQL | MCSA Windows 2012 | MTA Security | MCSE Windows 8 | MCSE Windows 2012 | Vencedor do Winthe7.com.br 2009, Quarto lugar Copa de Talentos Microsoft 2010

    quinta-feira, 8 de dezembro de 2016 15:21
  • Basta manter as coisas simples...

    $NewPath = Read-Host "Type here your new path"
    (Get-Content C:\Files\File.xml).Replace("C:\Manager Tool\Tool+Gyr\Adapter",$NewPath) | Set-Content C:\Files\File.xml

    • Marcado como Resposta Adriano Neiva quinta-feira, 8 de dezembro de 2016 16:13
    quinta-feira, 8 de dezembro de 2016 15:41
  • Basta manter as coisas simples...

    $NewPath = Read-Host "Type here your new path"
    (Get-Content C:\Files\File.xml).Replace("C:\Manager Tool\Tool+Gyr\Adapter",$NewPath) | Set-Content C:\Files\File.xml

    obrigado, funcionou ...


    Certified (35) | ITIL | MCP | MCDST | MCSA1 | MCSE1 | MCT | MCTS Sharepoint | MCITP SQL | MCSA Windows 2012 | MTA Security | MCSE Windows 8 | MCSE Windows 2012 | Vencedor do Winthe7.com.br 2009, Quarto lugar Copa de Talentos Microsoft 2010

    quinta-feira, 8 de dezembro de 2016 16:13