質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

1回答

2343閲覧

PowerShell:Format-Listの結果をリダイレクトやOut-Fileでファイル出力した結果「:」の位置が綺麗に揃わない

CM8IclfMMgeXJve

総合スコア1

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2020/11/27 02:37

編集2020/11/27 03:26

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/11/27 02:51

AAA が漢字とかそういうことでしょう。
CM8IclfMMgeXJve

2020/11/27 03:27

ありがとうございます。漢字も含まれている旨、追記いたしました。
Zuishin

2020/11/27 03:41

解決方法は大きく二種類あります。Mac や Linux でうまくいくのはそのうち一つが適用されているからです。PowerShell の質問に回答しても質問者がそのまま逃げるということが連続したので、それが解決したら回答します。
CM8IclfMMgeXJve

2020/11/27 04:04

お忙しいところ恐縮ですが、よろしくお願いいたします。
Zuishin

2020/11/27 04:11

他に優秀な回答者がたくさんいるので大丈夫です。私の個人的事情です。
guest

回答1

0

見た感じ実際のファイルはスペースではなくてタブですよね?

もしそうなら
必要数スペースが入るようにして各列の文字数をそろえてください。

それで表示がずれるものはフォントが原因ですね
等幅フォントを使用しましょう。

投稿2021/08/07 00:03

kamikazelight

総合スコア305

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問