当前位置: 首页 > 知识库问答 >
问题:

Powershell格式-表格仍然生成列表,无法以表格形式获取

徐翔
2023-03-14

我有一个脚本,可以从列表中获取项,为每个项编写值,我想做的只是将其管道到一个表中。我试过Format-Table、format-table-force、Select-Object和Format-Table,但都不起作用,结果只是显示在列表中。

#CAML Query to Filter List Items
$Query = "<View><Query><Where><Eq><FieldRef Name='MyChoice' /><Value Type='Choice'>Text Two</Value> 
</Eq></Where></Query></View>"

#Get All List Items matching given query
$ListItems = Get-PnPListItem -List $ListName -Query $Query

#Loop through each Item
Write-host -f Green "Number of List Items Found:"$ListItems.Count
$output = 
ForEach($ListItem in $ListItems)
{  
    Write-Output "Id :" $ListItem["ID"]
    Write-Output "FileLeafRef :" $ListItem["FileLeafRef"]
    Write-Output "MySecurity :" $ListItem["MySecurity"]
}
$Output | Format-Table -Property ID, FileLeafRef, MySecurity | Out-File 
"C:\wherever\File4.csv"

当我运行该脚本(2个列表项的示例)时,它现在是如何显示的:

ID:1 FileLeafref:MyFile.docx MySecurity:内部ID:2 FileLeafref:MySecondFile.png MySecurity:Private

我真的不能在这里添加一个表,即使是用HTML...但本质上我只希望每个列表项都是一行,并且我希望列:ID、FileLeafRef、MySecurity横跨顶部。

共有1个答案

洪弘壮
2023-03-14

首先,对于4列及以下的结果,PowerShell默认为表格/表视图。你只要求3英镑。因此,根本不需要格式表。此外,Out-File不会生成Csv格式。这是纯文本。

这个...

#Loop through each Item
Write-host -f Green "Number of List Items Found:"$ListItems.Count
$output = 
ForEach($ListItem in $ListItems)
{  
    Write-Output "Id :" $ListItem["ID"]
    Write-Output "FileLeafRef :" $ListItem["FileLeafRef"]
    Write-Output "MySecurity :" $ListItem["MySecurity"]
}
$Output | Format-Table -Property ID, FileLeafRef, MySecurity | Out-File 
"C:\wherever\File4.csv"

...是获得最终结果的错误方法。您永远不会使用Format-Table以这种方式创建文件。格式-表格用于屏幕输出。

所以,试试这个...

#Loop through each Item
Write-host -f Green "Number of List Items Found:"$ListItems.Count
ForEach($ListItem in $ListItems)
{  
    [PSCustomObject]@{
        Id          = "$ListItem['ID']"
        FileLeafRef = "$ListItem[FileLeafRef]"
        MySecurity  = "$ListItem['MySecurity']"
    } | 
    Export-Csv -Path 'C:\wherever\File4.csv' -Append -NoTypeInformation
}

结果示例:

#Loop through each Item
Write-host -f Green "Number of List Items Found:"$(Get-Process).Count
ForEach($ListItem in (Get-Process))
{  
    [PSCustomObject]@{
        Id          = $ListItem.Id
        FileLeafRef = $ListItem.Handles
        MySecurity  = $ListItem.ProcessName
    } | 
    Export-Csv -Path 'D:\temp\File4.csv' -Append -NoTypeInformation
}
Import-Csv -Path 'D:\temp\File4.csv'
# Results
<#

Id    FileLeafRef MySecurity             
--    ----------- ----------             
7236  204         aesm_service           
2144  476         ApplicationFrameHost   
21000 150         AppVShNotify           
...
#>

但是,如果您想要一个格式化的/表格式的文本文件作为报表,那么这个...

#Loop through each Item
Write-host -f Green "Number of List Items Found:"$(Get-Process).Count
$ListReport = ForEach($ListItem in (Get-Process))
{  
    [PSCustomObject]@{
        Id          = $ListItem.Id
        FileLeafRef = $ListItem.Handles
        MySecurity  = $ListItem.ProcessName
    }
}
Out-File -FilePath 'D:\temp\File4.txt' -InputObject $ListReport
Get-Content -Path 'D:\temp\File4.txt'
# Results
<#

   Id FileLeafRef MySecurity             
   -- ----------- ----------             
 7236         204 aesm_service           
 2144         476 ApplicationFrameHost   
21000         150 AppVShNotify           
...
#>
 类似资料:
  • 我正在学习Java,有一个非常简单的要求,我似乎不知道哪里出了问题。一个简单的ArrayList,用于写入控制台 名字 姓 多布 我似乎不知道我怎么能把它们打印在一行里 名字姓多布 另一个名字另一个姓氏另一个Dob 提前感谢你所有的帮助。

  • 问题内容: 我已经用python与selenium结合编写了一个脚本,以解析网页中表格中的一些可用日期。该表位于标题下。表格数据位于id内。你可以看到三个日期还有,和。我希望根据我下面的预期输出来解析和排列它们。 网页连结 到目前为止,这是我的尝试: 目前,我的输出如下: 我的预期输出: 问题答案: 尝试使用以下代码:

  • URLFormatter 此格式化器让你可以在网格列显示 URL 链接。 它有如下可选参数: 选项名称 描述 UrlFormat URL 的格式。如,在”http://www.site.com/{0}“ 中 {0} 被替换为 UrlProperty 的值。 如果没有指定,连接将依然显示 UrlProperty 的值。 如果 URL 格式以 “~/“ 开头,它将解析为应用程序根。例如,如果格式为 “

  • 问题内容: 我有以以下格式(示例)保存的数据(数字): 是否有任何python-way方法来排列数字并将其作为 (我无法预测列的大小)。 问题答案: 这是一个简单的独立示例,显示了如何设置可变列宽的格式: 输出:

  • 本文向大家介绍oracle-apex 处理表格形式,包括了oracle-apex 处理表格形式的使用技巧和注意事项,需要的朋友参考一下 示例 发布表格形式时,每个记录中的项目可通过“ APEX_APPLICATION.G_Fnn”数组供PL / SQL代码使用。G_F01对应于第一个可编辑列,G_F02对应于第二个列,依此类推。例如,您可以遍历每条记录并按如下方式访问每个字段的过帐值: 如果第一列

  • 常在iOS应用中看到的列表,是种多功能且强大的交互组件。列表将数据展现在一个可滚动的多行的列表中,可以将数据划分成不同的片段/组(sections/groups)。 列表有以下用途: 让用户可以浏览结构化的多级数据 展现一个索引列表 在可视化的不同分组中,显示详细信息和控件 展现一个可以选择的列表 列表布局 现在让我们看一下常见的列表布局 列表区(List block) 列表区(List bloc