![](/img/trans.png)
[英]How to Import a CSV and read a line from text file using PowerShell?
[英]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.