2013-06-12 65 views
3

我一直在嘗試通過在Learn SQL Hard Way站點上進行練習來學習SQL。我在我的桌面上創建了名爲ex1.sql的文件夾,並且我已將所有sqlite3的東西放在PATH中。不過,我使用Windows PowerShell,我可以不執行該命令:將.sql文件重定向到Windows中的.db文件

sqlite3 ex1.db < ex1.sql 

我得到這個錯誤在PowerShell的終端:

At line:1 char:16 
+ sqlite3 ex1.db < ex1.sql 
+    ~ 
The '<' operator is reserved for future use. 
    + CategoryInfo   : ParserError: (:) [], ParentContainsErrorRecordException 
    + FullyQualifiedErrorId : RedirectionNotSupport 

所以,我想「<」只能用於在Unix操作系統上重定向。我試圖在PowerShell中找到等價的命令,但我還沒有找到。如果任何人有這個問題或知道如何將.sql文件重定向到.db,那就太好了。

回答

4

你可以嘗試:

get-content ext1.sql | sqllite3 ext1.db 

該製品具有傳統重定向問題在PowerShell和各種變通辦法一個很好的討論:與Zed Shaw's Learn SQL the Hard Way沿以下

http://blogs.technet.com/b/heyscriptingguy/archive/2011/07/16/working-around-legacy-redirection-issues-with-powershell.aspx

+0

謝謝!我無法使用get-content方法使它工作,但它在我使用舊的DOS命令時發揮了作用,如文章中所述:_CMD/c「sqlite3 ex1.db

+0

它是' sqlite3'不是'sqllite3' –

2

我碰到這個問題電源外殼。在的Unix他所使用的命令是

sqlite3 ex1.db < ex1.sql 

乍得的回答完全適用於PowerShell的。 Zed使用'<' redirection從.sql文件讀取CREATE語句並將其用於.db文件。

在這種Powershell的例如,乍得正在讀取sql文件的內容和"piping"入.db文件。

還可以鍵入

gc ex1.sql | sqlite3 ex1.db 

我希望這可以幫助任何人跨越這個崗位絆倒在與捷思銳沿以下,像我這樣的!謝謝Zed和乍得!