Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Equivalent of 'more' or 'less' command in Powershell?

Tags:

powershell

People also ask

How do I use more in PowerShell?

The more command displays the first screen of information from Clients. new, and you can press the SPACEBAR to see the next screen of information. The more prompt asks you for the number of lines to display, as follows: -- More -- Lines: . Type the number of lines to display, and then press ENTER.

What does $_ mean in PowerShell?

The “$_” is said to be the pipeline variable in PowerShell. The “$_” variable is an alias to PowerShell's automatic variable named “$PSItem“. It has multiple use cases such as filtering an item or referring to any specific object.

Which is an equivalent PowerShell command?

Use Get-Command as the Equivalent of Which Command in PowerShell. The Get-Command cmdlet displays all commands installed on the computer, including cmdlets , aliases , functions , filters , scripts , and applications .

What does $() mean in PowerShell?

The $() is the subexpression operator. It causes the contained expressions to be evaluated and it returns all expressions as an array (if there is more than one) or as a scalar (single value).


Yes there is:

some-cmdlet | out-host -paging


Well... There is "more", which is more or less (...) the same you'd expect from other platforms. Try the following example:

dir -rec | more

dir -rec | more is bad advice.

It will cause powershell to evaluate the entire command prior to outputting it to the screen, something that is not needed for something like output paginating

In some extreme cases, it could cause the system to crash (e.g. dir 'C:\' | more)

On the other hand, using out-host -paging will output information to the screen as it is available.


The Powershell Community Extensions have a handy function named 'less' that provides a more complete Unix-style feature set, using a ported copy of less.exe to actually handle the paging.

You can install it by starting an admin shell and running:

Find-Package pscx | Install-Package -Force

(the force is to upgrade older versions)

You can pipe strings to it, or give filenames as direct parameters.

type foo.txt | less
less foo.txt, bar.txt, baz.txt

It works in ConEmu and Powershell windows, but unfortunately it doesn't work the way you'd expect under the v2.0 ISE.


I prefer the "less" command over the "more" command. With the less command, results can also be paged backwards instead of just forwards.

The "less" from Git for Windows works for me*

To save typing I added the alias "l" for less in my Powershell profile (notepad $profile):

sal l "C:\Program Files (x86)\Git\bin\less.exe"

Look for less either in the above path or C:\Program Files\Git\usr\bin\less.exe or similar.


*: I had errors in Powershell with the Gow version of "less".


PS> cd C:\

PS> dir -r -ex 0 | out-Host -paging

PS> dir -file -r -ea 0 c:\Windows | Select FullName,Length,LastWriteTime | out-gridview

more isn't used to limit output, it's used to paginate output and make it easier to read in a terminal, if anything.

Are you talking about using head and tail? EggHeadCafe has an example of:

type my.txt | select-object -first 10

type my.txt | select-object -last 10

to emulate head and tail.