- 灵感是工作里经常要把csv数据转为sql,就当做第一个练习了
#1.读取test.csv内以下数据
# 1,zhangsan1,男,20,19871201,无话可说1,
# 2,zhangsan2,女,20,19871201,无话可说2,
# 3,zhangsan3,男,20,19871201,无话可说3,
# 4,zhangsan4,女,20,19871201,无话可说4,
# 5,zhangsan5,男,20,19871201,无话可说5,
# 6,zhangsan6,女,20,19871201,无话可说6,
# 7,zhangsan7,男,20,19871201,无话可说7,
# 8,zhangsan8,女,20,19871201,无话可说8,
# 9,zhangsan9,男,20,19871201,无话可说9
#2.自定义表头:"id","name","sex","age","birthday","comment"
#3.过滤性别是女的数据,新建new_test.csv文件,将数据导入new_test.csv
Import-Csv -Path ./test.csv -Header "id","name","sex","age","birthday","comment" | Where-Object{
$_.'sex' -eq '女'
} | Export-Csv -Path ./new_test.csv
#4.从new_test.csv里获取id,name,comment
$i=0
$SQL
Import-Csv -Path ./new_test.csv -Header "id","name","sex","age","birthday","comment" | ForEach-Object{
if($i -gt 0){
$id = $_.'id'
$name = $_.'name'
$comment = $_.'comment'
#Write-Output "insert into table (id,name,comment) value ($id,'$name','$comment')"
#这里要特别注意,powershell的换行符不是用我们习惯的\r\n,\n,\r;而是`n,我这里开始不知道输出的文件一值不换行
$SQL +="insert into table (id,name,comment) value ($id,'$name','$comment'); `n"
}
$i+=1
}
# 文件输出
$SQL | Out-File -FilePath ./result.txt
- 感觉应该还可以再改进一下,有时间再琢磨下