前提・実現したいこと
powershellを独学で勉強中です。
引数で受け取ったCSVファイルをFormat-Listで変換して、ターミナルとファイル出力するスクリプトファイル(ps1)を作成しています。
発生している問題・エラーメッセージ
ターミナルへの表示は問題なくできたのですが、Windows環境でファイル出力した結果をサクラエディタで開くと区切り文字「:」の位置が行ごとにずれてしまいました。ネット検索して色々調べてみたのですが原因が分からず、解決策をご教示いただけませんでしょうか。
※実際のデータは業務データが含まれているため、以下表示は例です(AAA,BB,C,DDDDDには漢字も含まれています) (結果) AAA : 111 BB : 22 C : 3 DDDDD : 44444 (期待していた結果) AAA : 111 BB : 22 C : 3 DDDDD : 44444
ソースコード抜粋
function GetTsvfile { Import-Csv $1 -Delimiter "`t" -Header "AAA","BB","C","DDDDD" -Encoding UTF8 } $tsvfile = GetTsvfile $tsvfile = $tsvfile | Format-List #文字コードの問題かと想定して色々お試し $tsvfile > ~/ps_tsvfile_output.txt $tsvfile | Out-File -Encoding UTF8 ~/ps_tsvfile_output2_UTF8.txt $tsvfile | Out-File -Encoding ASCII ~/ps_tsvfile_output3_ASCII.txt
試したこと
・Window環境でスクリプト実行(-EncodingにUTF8指定)してサクラエディタで開くと現象の表示になる
・Window環境でスクリプト実行(-EncodingにASCII指定)すると「:」は綺麗に揃うが日本語が文字化けする
・powershellインストールしたMAC環境でスクリプト実行してlessコマンドで開くと「:」は綺麗に揃った形で表示される
補足情報(FW/ツールのバージョンなど)
■MAC環境
ps> $PSVersionTable
Name Value
PSVersion 7.0.3
PSEdition Core
GitCommitId 7.0.3
OS Darwin 19.6.0 Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:xnu-6153.14…
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
■Windows環境
ps> $PSVersionTable
Name Value
PSVersion 5.1.18362.752
PSEdition Desktop
PSCompatibleVersions {1.0,2.0,3.0,4.0...}
BuildVersion 10.0.18362.752
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1