如何在不编写单独的.txt文件的情况下传递多个SQLite3结构?

时间:2016-09-19 20:29:23

标签: sqlite

我开发了像这样的windows.bat文件(文件import.bat):

sqlite3 myDb.db<SQLTableTransfer.txt

这个脚本非常简单,只需运行sqlite3 shell命令传递两个参数:

  • 第一个参数是我的db(myDb.db)
  • 的名称
  • 第二个参数是文件名。文件SQLTableTransfer.txt具有此内容

    .open myDb.db
    
    .separator ;
    
    .import myCsv.csv mytable
    

现在我想避免写一个单独的.txt文件。我的目标是将所有命令放在.bat文件中。有可能吗?

2 个答案:

答案 0 :(得分:1)

您可以通过管道提供多个命令:

(echo .mode csv
 echo .separator ;
 echo .import myCsv.csv mytable) | sqlite3 myDb.db

答案 1 :(得分:0)

您可以在命令行中使用多个-cmd选项,如下所示。但请注意,您已在命令行中指定了数据库名称,因此不应使用.open命令。你需要的是.mode命令。

sqlite3 -cmd ".mode csv" -cmd ".separator ;" -cmd ".import myCsv.csv mytable" myDb.db

它会忽略任何-cmd .quit命令,因此如果要退出sqlite shell,则需要在命令末尾添加<nul