【发布时间】:2014-06-19 04:34:16
【问题描述】:
我正在编写一个脚本来准备将其上传到 SQL 的 csv。
我有两个几乎相同的命令(1 和 3),但第一个不起作用,第三个起作用。没有错误,只是没有按照我的预期去做。
我做了 3 个步骤,首先我摆脱了源文件中的所有管道(这是行不通的),然后我读写 CSV(这摆脱了使用引号和不使用引号的不同处理引号并将分隔符更改为管道)。最后我去掉了所有的引号,因为除了分隔符之外应该没有更多的管道。
# ---------------------------------------------------------
# 1. Get rid of all pipes
#----------------------------------------------------------
get-content ($csvfile + ".csv") | ForEach-Object { $_ -replace "|",""} | Set-Content ($csvfile + "2.csv")
# ---------------------------------------------------------
# 2. Make standard CSV but use Pipes as delimiter
#----------------------------------------------------------
Import-csv -path ($csvfile + "2.csv") -Delimiter ',' | Export-CSV -path ($csvfile + " 3.csv") -Delimiter '|'
# ---------------------------------------------------------
# 3. Get rid of all Quotes
#----------------------------------------------------------
get-content ($csvfile + "3.csv") | ForEach-Object { $_ -replace '"',""} | Set-Content ($csvfile + "4.csv")
摆脱的部分是相同的。第二个有效,它消除了所有引号,但第一个无效,管道仍在。我尝试了不同的字符,但由于某种原因,在这个位置没有一个有效。
我错过了什么?
谢谢!
【问题讨论】:
标签: powershell replace