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

如何通过PSCustomObject在PowerShell中将字符串写入CSV文件?

PowerShell字符串导出CSV的错误修正

我正在编写一个较大的PowerShell脚本,目前在写小型测试脚本解决字符串导出到CSV文件的问题。我知道用PSCustomObject让PowerShell向CSV添加条目,但不清楚怎么添加特定字符串条目(比如"valid"或"this is incorrect")。当前代码如下:

$CSVLog = New-Item "\\file path\Logs\$(Get-Date -f yyyy-MM-dd_hh-mm-ss) Test Log.csv" -ItemType File -Force

$CSVLog.Add(
  [PSCustomObject]@{
    'Column 1' = [string]::"Test" #Yeah, didn't think it would be this simple, but had to try...
  }
)

Export-CSV -NoTypeInformation -Path $CSVLog -Append

目前该代码会在控制台抛出错误,需要修改的地方及修正后的代码如下:

核心问题说明

  1. New-Item返回的是文件系统对象,没有.Add()方法用来添加CSV数据,这是错误的用法。
  2. [string]::"Test"是错误的字符串赋值语法,直接写字符串值即可。

修正后的代码

首次写入CSV

# 定义CSV文件路径
$csvPath = "\\file path\Logs\$(Get-Date -f yyyy-MM-dd_hh-mm-ss) Test Log.csv"

# 创建包含字符串条目的自定义对象
$logEntry = [PSCustomObject]@{
    'Column 1' = "Test"  # 直接赋值字符串即可
}

# 导出到CSV,自动创建文件
$logEntry | Export-CSV -NoTypeInformation -Path $csvPath -Force

追加新的字符串条目

如果后续需要向已存在的CSV追加内容,使用以下代码:

# 创建新的条目对象
$newEntry = [PSCustomObject]@{
    'Column 1' = "valid"
}

# 追加到CSV文件
$newEntry | Export-CSV -NoTypeInformation -Path $csvPath -Append -Force

关键说明

  • 无需提前用New-Item创建空文件,Export-CSV会自动生成不存在的文件,-Force参数确保操作顺利执行。
  • 给PSCustomObject属性赋值时,直接使用字符串字面量(如"Test"、"this is incorrect")即可,不需要额外的类型前缀。
  • 必须通过管道(|)将自定义对象传递给Export-CSV,这是PowerShell处理这类操作的标准方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 07:16:00