在Powershell中等效的"更多"或"更少"命令?

Val*_*yev 81 powershell

有没有办法通过将输出路由到一些'more'命令来对输出进行分页,这个命令可以在linux\unix shell中找到?

Sha*_*evy 94

就在这里:

some-cmdlet | out-host -paging

  • 请注意,PowerShell ISE不支持Out-Host的-Paging参数. (12认同)
  • 另外,评论答案:别名"哦"是"Out-Host",如果没有冲突,参数可以缩写,所以命令可以是`Some-Cmdlet | 哦-p` (6认同)

Jou*_*emi 60

嗯...有"更多",或多或少(......)与其他平台相同.请尝试以下示例:

dir -rec | more
Run Code Online (Sandbox Code Playgroud)

  • more 正是这样做的,当您使用 gcm more|select Definition|fl 查看函数的定义时 (2认同)
  • 实际上,管道到更多等于管道到"out-host -paging",这与more.com实现是分开的.但实际上并没有明显的区别. (2认同)
  • 有趣的!对我来说,gcm more 返回两个定义,一个是 PowerShell 函数,当给定一个空参数时,它会执行“$input | out-host -p”,这是我在 gci -rec | 上看到的行为。更多的。另一方面,当我做 gci -rec | more.com,我得到了正常的 more.com 行为。在安装了 PS2 的 W7 RC 上,即使只输入“more”,我似乎也会得到 more.com。在装有 PS1 的 Vista 上,会发生上述行为。基于 http://huddledmasses.org/powershell-power-user-tips-get-command-precedence/,您不认为该功能也应该在 W7 上执行吗?唔... (2认同)

小智 29

dir -rec | more 是不好的建议.

它将导致PowerShell在将整个命令输出到屏幕之前对其进行评估,这对于输出分页这样的东西是不需要的.

在某些极端情况下,它可能导致系统崩溃(例如dir 'C:\' | more)

另一方面,使用out-host -paging将输出信息显示在屏幕上.

  • `out-host -paging`的别名是`oh -pa`. (5认同)
  • 当您使用远程Powershell并希望通过传呼机将远程Windows服务器上的命令通过管道传输时,通过`out-host -paging`进行管道传输可以按需进行。在运行远程命令时通过`more`进行配管是没有用的:整个文本立即显示。 (2认同)

Ric*_*erg 25

PowerShell的社区扩展有一个名为"少",提供了一个更完整的Unix风格的功能设置,使用less.exe的移植拷贝到真正处理该寻呼,方便的功能.

您可以通过启动管理员shell并运行来安装它:

Find-Package pscx | Install-Package -Force
Run Code Online (Sandbox Code Playgroud)

(force是为了升级旧版本)

您可以将字符串传递给它,或者将文件名作为直接参数.

type foo.txt | less
less foo.txt, bar.txt, baz.txt
Run Code Online (Sandbox Code Playgroud)

它适用于ConEmu和Powershell窗口,但遗憾的是它不能按照你在v2.0 ISE下的预期工作.

  • 该安装将覆盖几个基本的Powershell命令(gcb,Expand-Archive,Format-Hex,Get-Hash,help,提示,Get-Clipboard,Get-Help,Set-Clipboard),因此说“ force是要升级较旧的版本”似乎有点误导。 (2认同)
  • 仅为当前用户安装而没有错误或警告使用:`Find-Package pscx | 安装包-强制-范围当前用户-allowclobber` (2认同)

Jos*_*osh 13

我更喜欢“更少”命令而不是“更多”命令。使用 less 命令,结果也可以向后翻页,而不仅仅是向前翻页。

Windows 版 Git 中的“少”对我有用*

为了节省输入,我在 Powershell 配置文件 ( notepad $profile) 中为 less 添加了别名“l” :

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

less在上述路径C:\Program Files\Git\usr\bin\less.exe或类似路径中查找。


*:我在 Powershell 中使用Gow版本的“less”时出错。

  • 设置 $env:PAGER="C:\cygwin64\bin\less.exe" 也是一个很好的主意,因此当您键入“help”时将使用它 (3认同)
  • 我也是。除了向后分页,less 还允许我对结果执行文本搜索(正斜杠,然后键入文本,然后按 Enter,然后按“n”获取下一个结果,“p”获取上一个结果)。非常非常方便。 (2认同)

Bil*_*ore 6

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
Run Code Online (Sandbox Code Playgroud)


Mar*_*off 5

more不用于限制输出,它用于对输出进行分页并使其更容易在终端中阅读(如果有的话)。

您是在谈论使用headandtail吗? EggHeadCafe有一个例子:

type my.txt | select-object -first 10

type my.txt | select-object -last 10
Run Code Online (Sandbox Code Playgroud)

效仿headtail.