ilpostino Skrevet 3. april 2019 Del Skrevet 3. april 2019 (endret) Jeg har en ganske stor multidimensjonal array i PowerShell som jeg ønsker å skrive ut i en meny som brukeren skal velge noe fra. Istedenfor at man må scrolle oppover for å se alle valgene kunne jeg tenke meg å få det dumpet ut i en tabell med for eksempel 4 kolonner slik at jeg får komprimert outputen litt. Hvordan skal jeg få til det? Nedenfor er et eksempelscript som viser hvordan jeg har laget det per nå. (det er noen forskjeller men dette er bare for å få frem poenget / problemet). $tall = 0 $tall = 0 $psarray = @( ('Line' ,'One'), ('Line' ,'Two'), ('Line' ,'Tree'), ('Line' ,'Four'), ('Line' ,'Five'), ('Line' ,'One'), ('Line' ,'Two'), ('Line' ,'Tree'), ('Line' ,'Four'), ('Line' ,'Five'), ('Line' ,'One'), ('Line' ,'Two'), ('Line' ,'Tree'), ('Line' ,'Four'), ('Line' ,'Five'), ('Line' ,'One'), ('Line' ,'Two'), ('Line' ,'Tree'), ('Line' ,'Four'), ('Line' ,'Five'), ('Line' ,'One'), ('Line' ,'Two'), ('Line' ,'Tree'), ('Line' ,'Four'), ('Line' ,'Five') ) cls echo "*** Meny ***" foreach($item in $psarray) { echo "$tall $($item[1])" $tall++ } $MenyTall = $psarray.length - 1 echo "`r`n" do { $Svar = Read-Host -Prompt "Skriv inn svaret ditt fra menyen over" } until (($Svar -match "^\d+$") -and ($Svar -In 0..$MenyTall) -eq "True") Write-Host "Du skrev inn noe fra menyen og det var et tall" Dette gir outputen under: *** Meny ***0 One1 Two2 Tree3 Four4 Five5 One6 Two7 Tree8 Four9 Five10 One11 Two12 Tree13 Four14 Five15 One16 Two17 Tree18 Four19 Five20 One21 Two22 Tree23 Four24 Five mens jeg vil ha noe ala dette Endret 3. april 2019 av ilpostino Lenke til kommentar
Thorbear Skrevet 3. april 2019 Del Skrevet 3. april 2019 Ikke prøvd meg så mye på powershell før, men hva med noe som dette: echo "*** Meny ***" $columnWidth = 15 for ($i = 0; $i -lt $psarray.length; $i = $i + 4) { $outs = @{} for ($j = 0; $j -lt 4; $j++) { $k = $i + $j if ($k -lt $psarray.length) { $outs[$j] = "$k $($psarray[$k][1])" } } "{0,-$columnWidth}{1,-$columnWidth}{2,-$columnWidth}{3,-$columnWidth}" -f $outs[0], $outs[1], $outs[2], $outs[3] } echo "`r`n" Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå