2013-02-08 36 views
1

我是一個新手相對,當涉及到的代碼,所以如果我錯過明顯的,請原諒我。我的問題是SQLite3(版本3.7.15.2確切)在Powershell中工作。我在我的電腦上安裝了SQLite3,SQLite3 shell自行運行,但是當我嘗試通過Powershell使用SQLite3時,我收到了錯誤消息。sqlite3的不工作的Powershell的

如果我只是在PowerShell中的sqlite3鍵入它說,它沒有一個公認的命令;然而,當我試圖通過在PowerShell中下面的命令來運行一個基本的SQL腳本,我收到此錯誤信息,而不是:

sqlite3 ex1.db < ex1.sql

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

有了這一切說來,可能是什麼問題?

謝謝你的時間!

回答

6

「<」(標準輸入)重定向無法在PowerShell的支持。

或許你可以嘗試把你的cammands在文件sqlcmd.txt和嘗試:

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

小心使用的完整路徑,您的exe文件,如果不是到路徑。

0

在PowerShell中,如果你想運行位於當前目錄下的EXE,您必須使用.\前綴它,就像這樣:

.\sqlite3 ex1.db 

您可以使用完整路徑,以及:

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

我不太清楚這是什麼有問題的事情。錯誤消息'錯誤消息:'''操作符保留供將來使用'肯定是由其他原因造成的。 –

+0

@zespri - OP首先指出當他鍵入'sqlite3'時,該命令不被識別。這表明他正試圖從當前目錄運行sqlite。解決這個問題的方法就是我上面的解決方案。 –

-2

明智的谷歌搜索後,我已經確定,這其實就是正確答案:

get-content ext1.sql | sqlite3 ext1.db

這裏最初發現:https://stackoverflow.com/a/17077104/1469375

JP的回答將創建一個名爲「output.txt的」空文件,但不會sqlcmd.txt的內容放入文件。

0

在OSX和Linux下面的命令作品:

sqlite3 ex1.db < ex1.sql 

但不知何故,它並沒有在他的"Lean SQL The Hard Way" book在Windows 10運行PowerShell的:(

Zed Shaw有PowerShell的這個解決方案:

替換 「<」 由 「-init」

「-init」必須先於.SQL腳本,因此命令也可以寫成:

sqlite3 -init ex1.sql ex1.db