我有以下代码:
$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。
谢谢!
答案 0 :(得分:1)
假设您需要以不正确提取CSV数据格式的方式手动解释此数据,则应该能够通过执行以下操作来实现将数据馈送到SQL表时的要求每行上有一个replace
(作为字符串)。
您需要将"|"
替换为|
,然后从两端将"
移开。
例如:
$data = Get-Content $csvfile
$data | foreach {$_.replace('"|"','|').TrimStart('"').TrimEnd('"')}