【发布时间】:2018-06-22 06:33:35
【问题描述】:
我有以下代码:
$files = Get-ChildItem 'C:\SitePlotsA\' -filter '*.csv'
$currentDate = get-date
for ($i=0; $i -lt $files.Count; $i++) {
$outfile = $files[$i].FullName + "out"
$csv = Import-Csv $files[$i].FullName -Delimiter "|"
$newcsv = @()
foreach ( $row in $csv ) {
$row | Add-Member -MemberType NoteProperty -Name "TimeStamp" -Value $currentDate -Force
$newcsv += $row
}
$newcsv | Export-Csv $files[$i].FullName -NoTypeInformation -Delimiter "|"
}
它的作用是导入给定目录中的所有 csv 文件,并添加一个包含当前日期时间的新列。它还将我的所有数据封装在双引号“”中。无论如何让它在没有双引号的情况下输出它?我到处找。
我希望它通过查看 CSV 目录而不是指向单个 csv 来保持原样。
谢谢!
【问题讨论】:
-
为什么要去掉双引号?它是 CSV 文件格式的一部分。
-
我将数据批量插入到 SQL 表中。我正在使用 |作为分隔符,当我在插入此列后运行它时,它看起来像“Bob Smith”
-
如果您的 CSV 看起来像
"Jim ""The Tank"" Brown",27,"Australia"怎么办? -
如何将数据添加到 SQL 表中?我怀疑那里有些错误,因为 CSV 是一种标准数据格式,双引号不是值的一部分,它们用于标记每个值的开始和结束......即。 CSV 阅读器会将
"|"解释为拆分,而不仅仅是管道字符。如果您没有正确解释该数据,而是在某些定制的数据解释中手动将竖线字符指定为您的分隔符,那可能是问题所在?
标签: powershell csv