2

リストを入力して、コンテンツを複数の列に表示するにはどうすればよいですか。たとえば、3 つの項目の後です。例:

$carlist = "c:\temp\list-of-cars.txt"             # listing 10 cars               
$num-cols = 4

内容は次のとおりです。

Car1          
Car2
..       
Car9      
Car10

$c = $carlist.count/$num-cols                     # some number of columns  
write-host $carlist (something)

出力は次のようになります (列の数に基づく:

Car1          Car4          Car7          Car10                                             
Car2          Car5          Car8                           
Car3          Car6          Car9
4

3 に答える 3

2

Format-Wide次のコマンドレットを試してください。

Get-Content cars.txt | Select-Object @{n='name';e={$_}} | Format-Wide -Column 4
于 2012-11-13T20:14:54.210 に答える
1
$cars = get-content "list-of-cars.txt"
$cars | Format-Wide {$_} -Column 4 -Force

または、ワンライナーを好む場合:

Get-Content .\list-of-cars.txt | Format-Wide {$_} -Column 4 -Force
于 2012-11-13T20:14:03.593 に答える
0

これは方法です:

Function SplitTo-Column($colnum, [object[]]$list)
{
  for($i=1; $i -le $list.Length; $i++)
  {    
    if ( ($i % $colnum)  -eq 0) 
    {
       [Console]::WriteLine($list[$i-1]) #or write-host "$($list[$i-1])" is more posh    
    }
    elseif ($i -eq $list.count)
    {
       [Console]::WriteLine($list[$i-1]) #or write-host "$($list[$i-1])"
    }
    else
    {
       [Console]::Write($list[$i-1] + "`t" ) #or write-host "$($list[$i-1])`t" -NoNewline  
    }
  }
}

使用する:

$carlist = gc c:\temp\list-of-cars.txt             # listing 10 cars               
$numcols = 4

SplitTo-Column -colnum $numcols -list $carlist
于 2012-11-13T20:02:47.857 に答える