168 votes

Équivalent de «Plus» dans Powershell?

Existe-t-il un moyen de paginer la sortie en la redirigeant vers une commande "more", disponible dans les shells linux \ unix?

153voto

Shay Levy Points 41404

Oui il y a:

some-cmdlet | out-host -paging

110voto

Jouni Heikniemi Points 901

Eh bien ... Il y a "plus", ce qui est plus ou moins (...) le même que celui que vous attendriez des autres plateformes. Essayez l'exemple suivant:

 dir -rec | more
 

46voto

Xavier Chorin Points 89

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.

42voto

Richard Berg Points 14218

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.

5voto

Mark Rushakoff Points 97350

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 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X