簡體   English   中英

如何使用PowerShell導入CSV文件?

[英]How to import CSV file using PowerShell?

我想使用 PowerShell 腳本將 CSV 文件(用雙引號分隔的逗號)導入到 SQLite 中。 我試過了:

echo ".import export.csv mytable" | sqlite3.exe

我收到此錯誤:

export.csv:327: 未轉義的 " 字符

我對所有行都收到此錯誤。 在 SQLite 的命令行 shell 上,相同的命令有效:

sqlite > .import export.csv mytable

如何使用 PowerShell 腳本使此命令起作用?

sqlite3.exe“.import export.csv mytable”怎么樣。

您可以查看 sqlite3.exe 的文檔以使用它不在其外殼中,如何將參數傳遞給 sqlite3.exe。

你可以試試下面的線

Invoke-Expression 'sqlite3 yourdatabase.db < ".import export.csv mytable"'

此頁面上列出的所有解決方案均無效。 但是,經過一些反復試驗,我設法弄清楚了。 我還沒有在任何地方看到這個解決方案,所以把它張貼在這里,希望它可以幫助像我一樣通過谷歌偶然發現這個頁面的其他人。

$params = @"
.mode csv
.separator ,
.import export.csv mytable
"@

$params | .\sqlite3.exe mydatabase.db

這在 PowerShell 5.1 和 v7.0 中都適用於我。

以下單個命令行適用於兩者

  • cmd.exe (版本 10.0.xx 通過ver )和
  • powershell.exe (版本 5.1.xx 通過$PSVersionTable
.\sqlite3.exe my.db ".import file1.csv table1 --csv"

這會將 csv 文件file1.csv的內容加載到 sqlite 數據庫文件my.db中的表table1中。 --csv標志將導入文件並根據該文件中的 header 列名創建表結構,並將大致推斷數據類型。

您可以通過這種方式導入多個文件。 IE

.\sqlite3.exe my.db ".import file1.csv table1 --csv" ".import file2.csv table2 --csv"

您可以將命令鏈接在一起,通過附加立即打開數據庫進行查詢; .\sqlite3.exe my.db ; .\sqlite3.exe my.db

IE

.\sqlite3.exe my.db ".import file1.csv table1 --csv" ".import file2.csv table2 --csv; .\sqlite3.exe my.db"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM