準備
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 から外部コマンドとして呼び出すのに不都合はなかった。