是否有一种方法可以通过将输出导入到 more
或 less
命令来进行分页,类似于 在 Linux/Unix shell 中可用的那些命令?
是否有一种方法可以通过将输出导入到 more
或 less
命令来进行分页,类似于 在 Linux/Unix shell 中可用的那些命令?
some-cmdlet | out-host -paging
。less
只是一个大型文本查看器应用程序,它接受文本的stdin
。你可以将其导向临时文件,并在nano
或vim
中打开它以获得更多的功能!这不是重点。PowerShell就像bash
(但更好,我个人认为)。less
不在bash
中;它是一个单独的二进制文件。因此,你的批评是无效的。 - Alan McBeeoh
代表Out-Host
,如果没有冲突,参数可以缩写,因此命令可以是Some-Cmdlet | oh -p
该答案指出,命令别名oh
是 Out-Host
的缩写,而且在没有冲突的情况下,参数可以使用缩写方式。因此,Some-Cmdlet | oh -p
命令中的 -p
参数使用了缩写形式。 - Alan McBee嗯...还有"更多",这与其他平台上的预期大致相同。请尝试以下示例:
dir -rec | more
dir -rec | more
是错误的建议。
它会导致 Powershell 在将其输出到屏幕之前评估整个命令,对于像输出分页这样的操作是不必要的。
在某些极端情况下,它可能会导致系统崩溃(例如,dir 'C:\' | more
)。
另一方面,使用 out-host -paging
将会在信息可用时将其输出到屏幕上。
out-host -paging
进行管道传输可以按预期工作。在运行远程命令时通过more
进行管道传输是无用的:整个文本会一次性显示。 - IllvilJaout-host -paging
的别名是 oh -pa
。 - JoshPowershell社区扩展有一个方便的函数名为“less”,提供了更完整的类Unix特性集,使用移植的less.exe来处理分页。
您可以通过启动管理员Shell并运行以下命令来安装它:
Find-Package pscx | Install-Package -Force
(该 force
是为了升级旧版本)
您可以将字符串传输到其中,也可以直接将文件名作为参数传递。
type foo.txt | less
less foo.txt, bar.txt, baz.txt
它可以在ConEmu和Powershell 窗口中工作,但不幸的是,在v2.0 ISE下它不能像你期望的那样工作。
force
是为了升级旧版本”似乎有一点误导。 - TNTFind-Package pscx | Install-Package -Force -scope currentuser -allowclobber
- Andreas Covidiot相较于“more”命令,我更喜欢使用“less”命令。因为使用“less”命令可以向前或向后翻页结果。
Git for Windows中的“less”命令对我很有效*
为了节省输入,我在我的Powershell配置文件(notepad $profile
)中添加了别名“l”来代替less命令:
Set-Alias -Name "l" -Value "${env:ProgramFiles(x86)}\Git\bin\less.exe"
在上述路径或类似路径C:\Program Files\Git\usr\bin\less.exe
中查找less
。
*: 我在使用 Gow 版本的“less”时,遇到了Powershell错误。
less
的粉丝。但我遇到了这个错误。有什么建议吗? Out-Host:找不到接受参数“C:\Program Files\Git\usr\bin\less.exe”的位置参数。
在行:1 字符:20
+ Get-Content tmpf | out-host 'C:\Program Files\Git\usr\bin\less.exe'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Out-Host],ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.OutHostCommand```
- olisteadmancore.pager
配置非常好用! - marcelocraPS> 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
不是用来限制输出的,而是用来分页输出并使终端读取更加容易的。如果有必要的话。head
和 tail
吗? EggHeadCafe 有一个示例:type my.txt | select-object -first 10
type my.txt | select-object -last 10
模拟 head
和 tail
。
head
和tail
操作:https://dev59.com/iWkw5IYBdhLWcg3wu9Fg#41626586 - wisbuckydir -r | vim -R -
命令。不幸的是,它与more
一样存在流媒体问题。cat C:\Temp\test.txt
cat是Get-Content的别名 - 当处理大文件时,会在终端底部输出 -- More -- 信息
你也可以添加-wait参数
cat C:\Temp\test.txt -wait
cat C:\Temp\test.txt | oh –Paging
oh = 输出-主机