###前提・実現したいこと
PowerShell(.ps1ファイル)から psqlコマンドでSQLファイルを実行し、
結果を改行なしでログに出力したい。
■ファイル構成
. D:\SQLTEST
. ├ POWERSHELL
. │ └ TEST.ps1
. ├ SQL
. │ └ TEST.sql
. └ LOG
. └ TEST.log
###ソースコード
■TEST.ps1
Powershell
1$SQLF = "D:\SQLTEST\SQL\TEST.sql" 2$LOGF = "D:\SQLTEST\LOG\LOG.log" 3 4(以下はサンプルのため適当です。) 5$HOSTNAME = "HOST" 6$DBUSER = "DBUSER" 7$PORT = "99999" 8$DBNAME = "DBNAME" 9 10"▼SQLファイル実行開始" > $LOGF 2>&1 11psql -w -a -h $HOSTNAME -U $DBUSER -p %PORT -d $DBNAME -f $SQLF >> $LOGF 2>&1 12"▲SQLファイル実行終了" >>$LOGF 2>&1
■TEST.sql
SQL
1-- 自動コミット停止 2\set AUTOCOMMIT off 3-- エラーがあれば処理中段 4\set ON_ERROR_STOP 5 6update test_tab 7 set test_col = 'test'; 8 9commit;
###実行結果
■TEST.log
LOG
1▼SQLファイル実行開始 2-- 自動コミット停止 3 4\set AUTOCOMMIT off 5 6-- エラーがあれば処理中段 7 8\set ON_ERROR_STOP 9 10 11update test_tab 12 13 set test_col = 'test'; 14 15UPDATE 1 16 17commit; 18COMMIT 19▲SQLファイル実行終了
実行結果を見てもらうと、PSQLファイルの内容がログファイルに出力されているのですが、
行ごとに改行が挟まってしまい、見栄えがあまりよくないです。
PowerShellの仕様なのか、psqlの仕様なのかわからないですが、
改善方法があればご教授いただけますと幸いです。
あなたの回答
tips
プレビュー