none
Remover linha em branco de arquivo gerado por BCP RRS feed

  • Pergunta

  • Olá amigos,

    Estou realizando um procedimento simples de geração de um arquivo .TXT que será consumido por um serviço.

    O arquivo está sendo gerado via BCP:

    EXEC xp_cmdshell 'bcp "SELECT Retorno FROM DSUP999.dbo.ColetaInadimplencia_sisci_end" queryout "C:\Arquivos\sisci_end\23.05.18\enderecos 23.05.18.txt" -T -w -t, -SGTI30601STG\MSSQL2016'

    O comportamento esperado do BCP é inserir uma quebra de linha a cada linha inserida. Visto isso, ao final do arquivo, uma linha em branco é inserida.

    Já tentei de diversas formas realizar a remoção desta linha, inclusive via cmd e powershell, porém sem sucesso devido a inexperiência.

    Alguém poderia auxiliar com idéias e/ou uma solução para este caso?

    Grato!


    • Editado Ricardo Basile quarta-feira, 23 de maio de 2018 18:59 Correção ortográfica
    quarta-feira, 23 de maio de 2018 18:58

Respostas

  • Boa tarde, Filipe!

    Seria "How to" mesmo.

    Aproveito para informar que tive êxito. Com a ajuda de uns amigos e utilizando powershell através do comando abaixo, consegui retirar a linha:

    $File = 'C:\Arquivos\arquivoTextoBCP.txt'
    $Newtext = (Get-Content -Path $File -Raw) -replace "(?s)`r`n\s*$"
    
    [system.io.file]::WriteAllText($File,$Newtext)

    De qualquer forma, obrigado!

    quinta-feira, 24 de maio de 2018 16:43

Todas as Respostas

  • Boa tarde, Ricardo Basile. Tudo bem?

    Obrigado por usar o fórum MSDN.

    Essa seria uma questão de "How to/Customização" ou "Break Fix/Erro"?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 24 de maio de 2018 16:05
    Moderador
  • Boa tarde, Filipe!

    Seria "How to" mesmo.

    Aproveito para informar que tive êxito. Com a ajuda de uns amigos e utilizando powershell através do comando abaixo, consegui retirar a linha:

    $File = 'C:\Arquivos\arquivoTextoBCP.txt'
    $Newtext = (Get-Content -Path $File -Raw) -replace "(?s)`r`n\s*$"
    
    [system.io.file]::WriteAllText($File,$Newtext)

    De qualquer forma, obrigado!

    quinta-feira, 24 de maio de 2018 16:43
  • Ricardo,

    Já tentou utilizar o parâmetro -L conhecido como LastRow?

    Veja a documentação do BCP:

    https://docs.microsoft.com/pt-br/sql/t-sql/statements/bulk-insert-transact-sql?view=sql-server-2017


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 25 de maio de 2018 13:12
  • Ricardo, encontrei este código em powershell que me ajudou no BCP

    #Retirar linhas em branco de arquivo txt (arquivo gerado em bcp)
    $content = [System.IO.File]::ReadAllText("C:\TESTE.txt")
    $content = $content.Trim()
    [System.IO.File]::WriteAllText("TESTE.txt", $content)

    Abraços.


    terça-feira, 8 de janeiro de 2019 20:54