2

在代码方面我是一个相对新手,所以如果我遗漏了明显的内容,请原谅;我的问题是让 SQLite3(确切地说是版本 3.7.15.2)在 Powershell 中工作。我在我的计算机上安装了 SQLite3,并且 SQLite3 shell 本身可以正常工作,但是当我尝试通过 Powershell 使用 SQLite3 时,我收到错误消息。

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

sqlite3 ex1.db < ex1.sql

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

说了这么多,可能是什么问题?

谢谢你的时间!

4

4 回答 4

6

"<" (stdin) redirection is not supported in Powershell.

Perhaps you can try to put your cammands in a file sqlcmd.txt and try :

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

Be careful to use the full path for your exe if it's not into the PATH.

于 2013-02-08T04:58:10.030 回答
1

以下命令适用于 OSX 和 Linux:

sqlite3 ex1.db < ex1.sql

但不知何故,它不适用于 Windows 10 PowerShell :(

Zed Shaw在他的“Learn SQL The Hard Way”一书中为 PowerShell 提供了这个解决方案:

sqlite3 ex1.db -init ex1.sql

替换"<""-init"

“-init”必须在 .sql 脚本之前,因此该命令也可以写成:

sqlite3 -init ex1.sql ex1.db
于 2018-01-03T18:17:34.767 回答
0

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

.\sqlite3 ex1.db

您也可以使用完整路径:

"drive-letter:\path_to_sqlite\sqlite3" ex1.db
于 2013-02-08T07:07:01.410 回答
-2

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

get-content ext1.sql | sqlite3 ext1.db

最初在这里找到:https ://stackoverflow.com/a/17077104/1469375

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

于 2013-09-09T04:21:54.087 回答