前回ご紹介の記事を発展させるにあたりぶつかった問題で
変数を出力すると何故か空白行(空行)が入るってものがあったのでその回避方法をご紹介します。
回避方法
出力すると空白行が入ってしまうところに以下をパイプで付け加えてあげるだけです。
| Out-String -Stream | ?{$_ -ne ""}
使い方としては、
echo $変数名 | Out-String -Stream | ?{$_ -ne ""}
こんな感じです。
ただこれだと私と同じく初心者の方はいまいちわからないと思うのでさらに具体的に。
以下は「c:\share」フォルダーのNTFSアクセス権で必要な情報(IdentityReference, AccessControlType, FileSystemRights)だけを$aclという変数に格納して表示するということをしています。
※ カラム名は非表示(Format-Table -HideTableHeaders)にしています。
$acl = (Get-Item c:\share).GetAccessControl().Access | Select-Object IdentityReference, AccessControlType, FileSystemRights | Format-Table -HideTableHeaders
$acl | Out-String -Stream | ?{$_ -ne ""}
2行目の「| Out-String -Stream | ?{$_ -ne ""}」がないとどうなるとかというと
「| Out-String -Stream | ?{$_ -ne ""}」を付け加えて実行すると
このようになります。
上画像なような状況にぶち当たったらちょっと加えるだけで解消されますので是非お試しください!
おわりに
私が取得したり出力するこういった情報は自分用なので、空行があっても困るわけではないのですが見た目がなんとなく気になるので対応してみました。