将 DataRows 连接成一个大文本文件
Concatenate DataRows into one big text file
对于以下脚本,它会创建一个文件,其中包含查询返回的所有行。但是,每行后面都有一个 换行符 。是否可以在没有换行符的情况下连接行?
$sql = "select .... from ...."
$r = Invoke-Sqlcmd -ServerInstance xxx $sql
$name = "test.txt"
$r | % { $_[0] >> $name }
更新:
一个可测试的例子:
$sql = "select 'a' C union all select 'b' union all select 'c' "
$r = Invoke-Sqlcmd -ServerInstance yoursever $sql
$name = "c:\temp\test.txt"
$r | % { $_[0] >> $name }
期待
abc
而不是
一个
b
C
数据行是多个对象,因此将它们保存为每个对象会将每个值写入它们自己的行。在保存之前收集值并加入它们,例如:
($r | % { $_[0] }) -join '' >> $name
用流来做,那也很快!
$sql = "select 'a' C union all select 'b' union all select 'c' "
$r = Invoke-Sqlcmd -ServerInstance yoursever $sql
$name = "c:\temp\test.txt"
$stream = [System.IO.StreamWriter] "$name"
$r | % { $stream.Write($_[0]) } #Write() as opposed to WriteLine()
$stream.Close()
对于以下脚本,它会创建一个文件,其中包含查询返回的所有行。但是,每行后面都有一个 换行符 。是否可以在没有换行符的情况下连接行?
$sql = "select .... from ...."
$r = Invoke-Sqlcmd -ServerInstance xxx $sql
$name = "test.txt"
$r | % { $_[0] >> $name }
更新: 一个可测试的例子:
$sql = "select 'a' C union all select 'b' union all select 'c' "
$r = Invoke-Sqlcmd -ServerInstance yoursever $sql
$name = "c:\temp\test.txt"
$r | % { $_[0] >> $name }
期待
abc
而不是
一个 b C
数据行是多个对象,因此将它们保存为每个对象会将每个值写入它们自己的行。在保存之前收集值并加入它们,例如:
($r | % { $_[0] }) -join '' >> $name
用流来做,那也很快!
$sql = "select 'a' C union all select 'b' union all select 'c' "
$r = Invoke-Sqlcmd -ServerInstance yoursever $sql
$name = "c:\temp\test.txt"
$stream = [System.IO.StreamWriter] "$name"
$r | % { $stream.Write($_[0]) } #Write() as opposed to WriteLine()
$stream.Close()