2016-09-19 47 views
1

我開發這樣的(文件import.bat)一個windows.bat文件:如何在不寫入單獨的.txt文件的情況下傳遞多個SQLite3構造函數?

sqlite3 myDb.db<SQLTableTransfer.txt 

這個腳本是很簡單,只需運行sqlite3的shell命令傳遞兩個參數:

  • 第一參數是我的db的名字(myDb.db)
  • 第二個參數是文件名。該文件SQLTableTransfer.txt有這個內容

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

現在我想避免寫一個單獨的.txt文件。我的目標是將所有命令放在.bat文件中。可能嗎?

回答

0

您可以在命令行上使用多個-cmd選項,如下所示。但請注意,您已經在命令行中指定了數據庫名稱,因此您不應該使用.open命令。 做什麼需要的是.mode命令。

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

它忽略任何-cmd .quit命令,所以如果你想從sqlite的外殼退出,你需要在命令的末尾添加<nul代替。

1

可以通過管道送入多個命令:

(echo .mode csv 
echo .separator ; 
echo .import myCsv.csv mytable) | sqlite3 myDb.db 
相關問題