Question Largeur des chaines résultat trop etroites

Plus d'informations
il y a 16 ans 1 mois #1640 par Jacques Barathon
En fait, pour être exact sur la nature du problème initial: ce n'est pas format-table qui repose sur la largeur de la console, mais out-host.

Tu peux alors te demander ce que out-host vient faire ici, alors que tu ne le mentionnes nulle part dans ton code. En fait, chaque ligne de code PowerShell voit sa sortie automatiquement redirigée vers out-default, et celui-ci détermine ce qu'il faut faire des infos en sortie pour un affichage optimal. En l'absence de commande explicite de formatage, par exemple, out-default va vérifier si les données émises sont d'un type connu par PowerShell, et le cas échéant va appliquer le format prévu.

Ensuite, une fois le formatage terminé, et en l'absence d'usage d'une commandelette d'affichage, out-default va transmettre les données par défaut à out-host (host = la console par défaut). C'est là que la largeur de la console va être prise en compte et provoquera la suppression des fins de lignes si celles-ci sont plus grandes. Ce n'est qu'ensuite que la redirection sera effectuée, alors que le mal est déjà fait...

Janel

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 1 mois #1641 par Arnaud Petitjean

select-object n'offre aucun contrôle dans le formatage des champs, tu te retrouves donc avec des espacements arbitraires.


Oups, damned ! Shame on me ! :whistle:

Allez, pour me racheter je vais te donner la solution pour redimensionner la console, avant même que tu ne poses la question :

[code:1]
$buff = $host.ui.RawUI.BufferSize # init. de la variable $buff
$buff.width = 150 # déf. du nb. de car. par ligne
$buff.Height = 3000 # déf. du nb. de lignes verticales
$host.ui.RawUI.BufferSize = $buff
$taille = $host.ui.RawUI.WindowSize # on initialise la variable
$taille.Width = $buff.width # nb. de caractères à l’horizontal
$taille.Height = 60 # nombre de lignes verticales
$host.ui.RawUI.WindowSize = $taille
[/code:1]

Si tu te demandes pourquoi ça ne fonctionne pas si l'on ne passe pas par un objet intermédiaire ($taille), sache que c'est par conception (\"by design\", réponse MS ;)). L'explication qu'on m'a donné est un peu confuse pour moi, surtout quand c'est expliqué en anglais :P

Arnaud<br><br>Message édité par: Arnaud, à: 7/02/08 14:22

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 1 mois #1659 par sonic
Génial tout marche et en plus je sais maintenant redimentionné la console .....
:)
Merci à tous . Je publierai le code complet dans mon autre post concernant la suveillance des repertoires avec envois de mail .
Je le perfectionnerai de temps en temps .

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.086 secondes
Propulsé par Kunena