Existe-t-il un moyen de paginer la sortie en la redirigeant vers une commande "more", disponible dans les shells linux \ unix?
Réponses
Trop de publicités? dir -rec | more
est un mauvais conseil.
Powershell évaluera la commande dans son intégralité avant de l'afficher à l'écran, ce qui n'est pas nécessaire pour effectuer une pagination de la sortie.
Dans certains cas extrêmes, le système pourrait tomber en panne (par exemple, dir 'C:\' | more
)
D'autre part, utiliser out-host -paging
affichera les informations à l'écran telles qu'elles sont disponibles.
Les extensions de communauté Powershell ont une fonction très pratique nommée 'less' qui fournit un jeu de fonctionnalités plus complet de style Unix, utilisant une copie portée de less.exe pour gérer réellement la pagination.
C:\Code> cat Function:\Less
$OutputEncoding = [Console]::OutputEncoding
if ($args) {
& "$Pscx:Home\Applications\Less-394\less.exe" @($args |? { test-path $_ } |% { "`"$(resolve-path $_)`"" })
}
else {
$input | out-string | & "$Pscx:Home\Applications\Less-394\less.exe"
}
Vous pouvez y diriger des chaînes ou donner des noms de fichiers comme paramètres directs.
type foo.txt | less
less foo.txt, bar.txt, baz.txt
Malheureusement, cela ne fonctionne pas comme prévu dans la version 2.0 ISE.
more
n'est pas utilisé pour limiter les sorties, mais pour paginer les sorties et faciliter la lecture dans un terminal, le cas échéant.
Parlez-vous d'utiliser head
et tail
? EggHeadCafe a un exemple de:
type my.txt | select-object -first 10
type my.txt | select-object -last 10
imiter head
et tail
.