Usuário com melhor resposta
Remover linha em branco de arquivo gerado por BCP

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
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!
- Sugerido como Resposta Carlos_rodrigues quinta-feira, 24 de maio de 2018 17:09
- Marcado como Resposta Filipe B CastroModerator quinta-feira, 24 de maio de 2018 21:02
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.
-
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!
- Sugerido como Resposta Carlos_rodrigues quinta-feira, 24 de maio de 2018 17:09
- Marcado como Resposta Filipe B CastroModerator quinta-feira, 24 de maio de 2018 21:02
-
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]
-
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.
- Editado Sergio Magalhaes Lus terça-feira, 8 de janeiro de 2019 20:55
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 10 de janeiro de 2019 23:18