首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerShell 5.1ISE为什么我的列在使用Format-Table时不全部显示

PowerShell 5.1ISE为什么我的列在使用Format-Table时不全部显示
EN

Stack Overflow用户
提问于 2022-09-14 21:39:46
回答 2查看 39关注 0票数 -1

我有一个32列的表,当我尝试用PowerShell中的Format-Table输出这个表时,它切断了一个很好的逗号,如下图所示。

我在下面包含了创建表和记录的脚本。

代码语言:javascript
复制
$sqlResult = Invoke-Sqlcmd -Query 'select * from Table_1' -ServerInstance '(localdb)\MSSQLLocalDB' -Database 'Database1' -OutputAs DataTables

$sqlResult | Format-Table

如何以下列形式输出表格格式的所有列:

  1. in PowerShell 5.1ISE或Azure管道中的任何其他控制台
  2. 记录

代码语言:javascript
复制
USE [Database1]
GO
/****** Object:  Table [dbo].[Table_1]    Script Date: 9/14/2022 5:51:07 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table_1](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Column1] [nvarchar](50) NULL,
    [Column2] [nvarchar](50) NULL,
    [Column3] [nvarchar](50) NULL,
    [Column4] [nvarchar](50) NULL,
    [Column5] [nvarchar](50) NULL,
    [Column6] [nvarchar](50) NULL,
    [Column7] [nvarchar](50) NULL,
    [Column8] [nvarchar](50) NULL,
    [Column9] [nvarchar](50) NULL,
    [Column10] [nvarchar](50) NULL,
    [Column11] [nvarchar](50) NULL,
    [Column12] [nvarchar](50) NULL,
    [Column13] [nvarchar](50) NULL,
    [Column14] [nvarchar](50) NULL,
    [Column15] [nvarchar](50) NULL,
    [Column16] [nvarchar](50) NULL,
    [Column17] [nvarchar](50) NULL,
    [Column18] [nvarchar](50) NULL,
    [Column19] [nvarchar](50) NULL,
    [Column20] [nvarchar](50) NULL,
    [Column21] [nvarchar](50) NULL,
    [Column22] [nvarchar](50) NULL,
    [Column23] [nvarchar](50) NULL,
    [Column24] [nvarchar](50) NULL,
    [Column25] [nvarchar](50) NULL,
    [Column26] [nvarchar](50) NULL,
    [Column27] [nvarchar](50) NULL,
    [Column28] [nvarchar](50) NULL,
    [Column29] [nvarchar](50) NULL,
    [Column30] [nvarchar](50) NULL,
    [Column31] [nvarchar](50) NULL,
    [Column32] [nvarchar](50) NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Table_1] ON 
GO
INSERT [dbo].[Table_1] ([Id], [Column1], [Column2], [Column3], [Column4], [Column5], [Column6], [Column7], [Column8], [Column9], [Column10], [Column11], [Column12], [Column13], [Column14], [Column15], [Column16], [Column17], [Column18], [Column19], [Column20], [Column21], [Column22], [Column23], [Column24], [Column25], [Column26], [Column27], [Column28], [Column29], [Column30], [Column31], [Column32]) VALUES (1, N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903', N'12345678901234567890212345678903')
GO
SET IDENTITY_INSERT [dbo].[Table_1] OFF
GO
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-14 22:17:05

简短的回答是“因为你的终端不够宽,不能显示一切”。

您可以通过管道到外字符串并提供一个非常大的-Width来解决此行为。

代码语言:javascript
复制
... | Format-Table | Out-String -Width 10kb
票数 1
EN

Stack Overflow用户

发布于 2022-09-14 22:16:27

这似乎适用于PowerShell ISE,并在某种程度上适用于控制台:

代码语言:javascript
复制
    function Main
    {
        
        $Host.UI.RawUI.BufferSize = New-Object Management.Automation.Host.Size (1800, 25)
            
        $sqlResult = Invoke-Sqlcmd -Query 'select * from Table_1' -ServerInstance '(localdb)\MSSQLLocalDB' -Database 'Database1' -OutputAs DataTables
        $columns = ($sqlResult.Columns -join ',') -split ','
        $sqlResult | Format-Table -Property $columns -AutoSize | Out-Host
    }  
    Main
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73723456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档