You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell提取OneNote嵌套对象属性并导出为CSV的实现方法

解决方案

问题原因

PowerShell 的 Select-Object 默认只会读取对象的顶级属性,你直接传入 ParentSection.DisplayName 时,它会将整段字符串当做属性名去查找,而你的页面对象下不存在这个名称的顶级属性,所以返回空值。

正确实现方式

你可以使用计算属性来提取嵌套对象的属性值,有两种常用写法:

写法1:管道流式处理(更简洁)

直接通过管道遍历所有页面,不需要手写循环:

# 提取属性并导出为CSV
$sPages | Select-Object `
    Title, `
    CreatedDateTime, `
    @{
        Name = 'ParentSectionDisplayName'
        Expression = {$_.ParentSection.DisplayName}
    } | Export-Csv -Path "OneNote页面导出.csv" -Encoding UTF8 -NoTypeInformation

参数说明:

  • @{...} 结构是PowerShell的计算属性定义,Name 是导出后CSV的列名,可以自定义,Expression 是属性的取值逻辑,$_ 代表当前遍历到的单个页面对象
  • -NoTypeInformation 用于移除CSV文件开头多余的类型描述行
  • -Encoding UTF8 避免页面标题包含中文时出现乱码,如果需要用Excel默认打开不乱码,可以替换为 -Encoding GB2312

写法2:foreach循环显式构造对象

如果你习惯用foreach循环的写法,可以手动构造输出对象:

# 遍历所有页面构造结果对象
$result = foreach ($s in $sPages) {
    [PSCustomObject]@{
        Title = $s.Title
        CreatedDateTime = $s.CreatedDateTime
        ParentSectionDisplayName = $s.ParentSection.DisplayName
    }
}

# 导出到CSV
$result | Export-Csv -Path "OneNote页面导出.csv" -Encoding UTF8 -NoTypeInformation

内容的提问来源于stack exchange,提问作者dwids

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:09:01