gpt4 book ai didi

powershell - PowerShell-想要为使用invoke-sqlcmd从数据库检索的数据创建固定宽度的输出文件

转载 作者:行者123 更新时间:2023-12-03 01:29:48 27 4
gpt4 key购买 nike

$ObjDataSet2 = Invoke-SQLcmd -AbortOnError -Query $Query2 -Server $dbServer -Database $dbName -Username $dbUser -Password $dbPwd

$ObjDataSet2 | ConvertTo-Csv -Delimiter '|' -NoTypeInformation | out-file -Filepath $OutFile -Append

我是PowerShell的新手,所以不了解很多,这可能是一个简单直接的解决方案。

我正在使用以上语句从数据库获取数据以创建管道分隔文件。我不希望用管道定界,而是想生成一个固定宽度的文件,但是我不确定该怎么做以及语法是什么。以下是上述语句的当前输出,后面是预期的固定宽度输出。

电流输出:
Product_Code|Prodct_ID|Product_Type|Cost    
PM1234566|12345|Ellipse|10.13
PM12345672|1234609|Wheel|12.10
PM123456812|123470987|Rod|100.90
PM1234569|12348|Ellipse|14

========

预期产量:
Product_Code Prodct_ID   Product_Type    Cost    
PM1234566 12345 Ellipse 10.13
PM12345672 1234609 Wheel 12.10
PM123456812 123470987 Rod 100.90
PM1234569 12348 Ellipse 14

==========

所需的列宽:
Product_Code:  1-13

Product_ID: 14-25

Product_Type: 26-41

Cost: 42-50

在此先感谢您的帮助,转换后固定长度的格式不会正确显示,请查看下面的详细信息以了解每个字段的宽度。

最佳答案

它使用-f字符串格式运算符以及分配列大小和左/右对齐的功能。负对齐表示对齐LEFT而不是默认的align-right。

我手头没有SQL资料,因此我使用了您发布的CSV作为输入。您可以轻松更换该enuf。 [咧嘴]
$Results集合可以根据需要正常输出到文件。

# fake reading in a CSV file
# in real life, use Import-CSV
$ProductList = @'
Product_Code|Product_ID|Product_Type|Cost
PM1234566|12345|Ellipse|10.13
PM12345672|1234609|Wheel|12.10
PM123456812|123470987|Rod|100.90
PM1234569|12348|Ellipse|14
'@ | ConvertFrom-Csv -Delimiter '|'

# the "-13" tells the formatter to left-align in a 13 character field
$FormatString = '{0,-13}{1,12}{2,16}{3,9}'

$Results = foreach ($PL_Item in $ProductList)
{
# send the resulting string to the `$Results` collection
$FormatString -f $PL_Item.Product_Code, $PL_Item.Product_ID, $PL_Item.Product_Type, $PL_Item.Cost
}

# send the collection to the screen
$Results

输出...
PM1234566           12345         Ellipse    10.13
PM12345672 1234609 Wheel 12.10
PM123456812 123470987 Rod 100.90
PM1234569 12348 Ellipse 14

关于powershell - PowerShell-想要为使用invoke-sqlcmd从数据库检索的数据创建固定宽度的输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59362361/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com