Question
Largeur des chaines résultat trop etroites
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 7 mois #1640
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Largeur des chaines résultat trop etroites
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
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.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 15 ans 7 mois #1641
par Arnaud Petitjean
Oups, damned ! Shame on me !
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 
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 ou d'un conseil ?
Réponse de Arnaud Petitjean sur le sujet Re:Largeur des chaines résultat trop etroites
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 !

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


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 ou d'un conseil ?
Connexion ou Créer un compte pour participer à la conversation.
- sonic
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 15 ans 7 mois #1659
par sonic
Réponse de sonic sur le sujet Re:Largeur des chaines résultat trop etroites
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 .

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.049 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Largeur des chaines résultat trop etroites