ループ時にテキストがさらに右に移動する


0

これは、forループを含む関数を作成するときの私の出力です。

NO      Type
--      ----

 1       System.Int32 
 2       System.Int32 
 3       System.Int32 
 4       System.Int32 
 5       System.Int32 
 6       System.Int32 
 7       System.Int32 
 8       System.Int32 
 9       System.Int32 
 10          System.Int32   

10が来ると、System.Int32がさらに右に移動することがわかります。コード内でそれを変更するにはどうすればよいですか?これはおそらく、Powershellだけとは関係ありません。

コード:

function CountTen() {
    [array]$ListOfNumbers = @()
    [array]$NumbersType = @()

    for ($i=1; $i -le 10; $i++) {
        $ListOfNumbers += ("`n", $i, "`t`t", ($i.GetType()))
    }

    Write-Host "NO`t`tType"
    Write-Host "--`t`t----"
    Write-Host $ListOfNumbers, "`t`t", $NumbersType
}

CountTen    

2
タブを出力しているからです。10余分な桁に達すると、次のタブストップが右に移動します。
DavidPostill

どうすればこれを別の方法で行うことができますか?
-Zrg

1
<shrug>数字が2桁の場合、2つのタブではなく1つのタブが出力されますか?それはあなたのコードです。何が受け入れられるかを決める必要があります。
DavidPostill

@DavidPostillが言ったこと。このスクリプトの目的は何ですか?プログラミングを始めたばかりの場合を除いて、数字を印刷することはあまり有用ではありません(これについて誤解しないでください、完全に有効です!)。このスクリプトを作成して解決しようとしている問題、または最終的な目標(投稿を編集してコメントを投稿しないでください。コメントで返信しないでください)を教えてください。これはXY問題によく似ています
CVn

回答:


0

PSのフォーマット(-f)を確認する必要があります。サンプルはここにあります:http : //www.computerperformance.co.uk/powershell/powershell_-f_format.htm

そのため、高度な書式設定には、次のパターンを使用でき ます 。format -f values like

"text {x,xlength} text {y,ylength} text" -f xvalue, yvalue

ここで、x(およびy)は-fの後ろにリストされている値の位置です。その値は、{...}が配置されているテキストに表示する必要があります。xlength(およびylength)は、適切な値が表示される幅です。長さはオプションです。

現在の問題は、特定のフォーマットを使用して、この方法で再定義できます。

function CountTen() {
    $format = "{0,5} {1}"
    [array]$ListOfNumbers = @()
    [array]$NumbersType = @()

    $format -f "NO", "Type"
    $format -f "--", "----"

    for ($i=1; $i -le 10; $i++) {
        $format -f $i, $i.GetType()       
    }
}

CountTen

ここで、整数とそれらのヘッダーは、5文字の長さのフィールドに(図がよくあるように)「右揃え」に揃えられています。


OPはpowershellの初心者のように思われるので、リンクだけではなく、実際に彼の問題を解決する例を提供することを考えるべきです。
DavidPostill

私はあなたのコメントを尊重し、喜んで例を挙げますが、すべてを試すことなくそれを行いません(決してしません)。Zrgがこの問題と闘うかどうかを確認する試みが可能になったら、帰国します。
ゴンバイサンドル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.