关于代码,我是一个相对新手,所以如果我错过了明显的请原谅我;我的问题是让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
说到这一切,可能是什么问题?
谢谢你的时间!
答案 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的内容放入文件中。