SQLite3没有在Powershell上工作

时间:2013-02-08 04:29:48

标签: powershell sqlite

关于代码,我是一个相对新手,所以如果我错过了明显的请原谅我;我的问题是让SQLite3(准确地说是3.7.15.2版)在Powershell中工作。我在我的计算机上安装了SQLite3,SQLite3 shell自行运行正常,但是当我尝试通过Powershell使用SQLite3时,我收到错误消息。

如果我只是输入Powershell中的sqlite3,则表明它不是公认的命令;但是,当我尝试通过Powershell中的以下命令运行基本SQL脚本时,我收到此错误消息:

sqlite3 ex1.db < ex1.sql

error message: "The '<' operator is reserved for future use

说到这一切,可能是什么问题?

谢谢你的时间!

4 个答案:

答案 0 :(得分:6)

“&LT;” Powershell不支持(stdin)重定向。

也许您可以尝试将您的cammands放在文件sqlcmd.txt中并尝试:

Get-Content sqlcmd.txt | sqlite3.exe > output.txt

如果没有进入PATH,请小心使用exe的完整路径。

答案 1 :(得分:1)

以下命令适用于OSX和Linux:

sqlite3 ex1.db < ex1.sql

但不知怎的,它在Windows 10 PowerShell上不起作用:(

他的Zed Shaw中的

"Lean SQL The Hard Way" book有适用于PowerShell的解决方案:

sqlite3 ex1.db -init ex1.sql

替换&#34;&lt;&#34;通过&#34; -init&#34;

&#34; -init&#34;必须在.sql脚本之前,因此也可以编写命令:

sqlite3 -init ex1.sql ex1.db

答案 2 :(得分:0)

在Powershell中,如果要运行位于当前目录中的exe,则必须在其前面添加.\,如下所示:

.\sqlite3 ex1.db

您也可以使用完整路径:

"drive-letter:\path_to_sqlite\sqlite3" ex1.db

答案 3 :(得分:-2)

经过明智的谷歌搜索后,我确定这实际上是正确的答案:

get-content ext1.sql | sqlite3 ext1.db

最初在此处找到:https://stackoverflow.com/a/17077104/1469375

JP的答案将创建一个名为“output.txt”的空文件,但不会将sqlcmd.txt的内容放入文件中。