himorogiの日記

主にプログラミングに関することなど。少々ハード(電子工作)についても。

準備

PowerShell の console の encoding

PowerShell の console はデフォルトで

chcp 932 # MS-SJIS

一方 SQLite3 は Unicode のみ扱える
PowerShell の console から SQlite3 との間で日本語を文字化けせずにやりとりできるようにするため、最初に PowerShell console の code page を

chcp 1200 # UTF16LE
chcp 1201 # UTF16BE
chcp 65001 # UTF8

何れかにする。

PowerShell consoleからsqlite3などの外部コマンドとやり取りする場合…

PowerShellから外部コマンドを実行するとき、外部コマンドへの引数渡しではリダイレクトを利用できない(PowerShell では '<' が予約語になっている)ためGet-Content(=外部ファイルの内容をパラメータとして渡す場合とpipe を使う。

なお、外部コマンド終了の都度セッションが切断・終了されることに注意!
このため、コマンドラインのパラメータや、コマンドファイルは毎回 use [database 名]; に続くマルチステートメントでコマンドを構成する。

あまり重要ではないが…sqlite3.exe(shell コマンド)のプロファイルについて

sqlite3.exe を download したままだと、[ファイルのプロパティ]->[セキュリティ]->[ブロックの解除]button が表示される。つまりクラウドからダウンロードしたファイルなのでファイルがブロックされているが、その状態でも PowerShell から外部コマンドとして呼び出すのに不都合はなかった。