Out-File截断文本

时间:2017-12-21 13:13:49

标签: sql-server powershell

我有以下PowerShell脚本从表中查询单个列,我想将结果发送到文本文件:

$SqlStatement = 
"SELECT Result 
FROM JobRun 
WHERE AccountID = 13 
    AND InterfaceID = 2
    AND Started BETWEEN '4/1/2016' AND '4/2/2016'"


$Result = Invoke-Sqlcmd -ServerInstance "xxxx" -Database "Vincent" -Query $SqlStatement -Username "rminder" -Password "xxxx"
$Result | Out-File C:\Temp\MyProject\SUP_20160401.Txt -Width 4000

如果没有-Width参数,文本将被截断为大约255个字符。即使使用-Width参数,文本也会被截断为大约2155个字符。它看起来像这样:

EVV_AutoConfirmFlag|EVV_VisitRecordIndicator...                                                

有没有办法可以避免任何截断?我打算多次运行此查询。 SQL Server表中的Result列是varchar(max)列,因此它可以容纳非常大量的数据。在上面的查询中,结果列包含~40K字节的文本。

顺便说一下,我还尝试了如下的Export-Csv,但截断了大约4K的文本。

$Result | Export-Csv C:\Temp\MyProject\SUP_20160401.Csv -NoTypeInformation

2 个答案:

答案 0 :(得分:1)

正如@vonPryz所说,存在多个问题。这应该工作

$Result = Invoke-Sqlcmd -ServerInstance "xxxx" -Database "Vincent" -Query $SqlStatement -Username "rminder" -Password "xxxx" -MaxCharLength ([int]::MaxValue)
$Result | Export-Csv C:\Temp\MyProject\SUP_20160401.Csv -NoTypeInformation

您可以使用MaxCharLength获得超过4K的文本,并能够以CSV格式输出。

答案 1 :(得分:0)

使用Set-Content

<video aria-hidden="true" id="looping-video" autoplay loop muted playsinline>
  <source src="path/to/video.mp4" type="video/mp4" />
</video>
<button id="looping-video-pause-button">Pause Video</button>