在Windows中将.sql文件重定向到.db文件

时间:2013-06-12 23:01:50

标签: sql windows sqlite powershell

我一直在尝试通过在Learn SQL the Hard Way网站上进行练习来学习SQL。我在桌面上的文件夹中创建了一个名为ex1.sql的文件,并且我已将所有sqlite3内容放在PATH中。但是,我使用的是Windows Powershell,我无法执行命令:

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

所以,我猜'&lt;'只能用于在Unix OS上重定向。我试图在powershell中找到一个等效的命令,但我还没找到。如果有人遇到此问题或知道如何将.sql文件重定向到.db,那就太棒了。

2 个答案:

答案 0 :(得分:4)

你可以尝试:

get-content ext1.sql | sqllite3 ext1.db

本文对Powershell中的遗留重定向问题和各种解决方法进行了很好的讨论:

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

答案 1 :(得分:2)

我在Powershell上发现了Zed Shaw's Learn SQL the Hard Way以及此问题。他在 Unix 上使用的命令是

sqlite3 ex1.db < ex1.sql

Chad的回答非常适合Powershell。 Zed正在使用'<' redirection从.sql文件中读取CREATE语句,并使用该输入到.db文件。

在这个 Powershell 示例中,Chad正在读取.sql文件的内容,并将"piping"读入.db文件。

您也可以输入

gc ex1.sql | sqlite3 ex1.db

我希望这可以帮助任何在跟随Zed一起跟踪这篇文章的人,就像我一样!谢谢Zed和Chad!