我想在PowerShell脚本中将CSV文件(用双引号分隔的逗号)导入sqlite3
。我试过了:
echo ".import export.csv mytable" | sqlite3.exe
但是我收到了这个错误:
export.csv:327:unescaped"字符
327>行号(我得到所有行的这个错误)
但是在命令行中,当我使用sqlite3
shell并输入相同的命令时,它可以工作:
sqlite > .import export.csv mytable
如何在PowerShell脚本中使命令工作?
答案 0 :(得分:1)
sqlite3.exe怎么样“.import export.csv mytable”。
您可以查看sqlite3.exe的文档,使其不在shell中,如何将参数传递给sqlite3.exe。
您可以尝试以下行
Invoke-Expression 'sqlite3 yourdatabase.db < ".import export.csv mytable"'
答案 1 :(得分:1)
此页面上列出的所有解决方案均无效。但是,经过反复试验,我设法弄清楚了。我还没有看到此解决方案在任何地方发布,因此请在此处发布,以希望它可以像我一样帮助其他通过Google偶然发现此页面的人。
$params = @"
.mode csv
.separator ,
.import export.csv mytable
"@
$params | .\sqlite3.exe mydatabase.db
这在PowerShell 5.1和v7.0中都对我有效。