¿Hay alguna manera de paginar la salida atornillándola a algún comando 'más', que está disponible en linux \ Unix shells?¿Equivalente al comando 'más' o 'menos' en Powershell?
Respuesta
Bueno ... Hay "más", que es más o menos (...) el mismo que esperaría de otras plataformas. Pruebe el siguiente ejemplo:
dir -rec | more
more
no se usa para límite de salida, se utiliza para paginar de salida y hacer que sea más fácil de leer en un terminal, en todo caso.
¿Estás hablando de usar head
y tail
? EggHeadCafe tiene un ejemplo de:
type my.txt | select-object -first 10
type my.txt | select-object -last 10
para emular head
y tail
.
El Powershell Community Extensions tienen una función muy útil llamada 'menos' que proporciona un conjunto más completo de características de estilo Unix, usando una copia portado de less.exe para manejar efectivamente la paginación.
Se puede instalar iniciando una cáscara administrador y funcionando:
Find-Package pscx | Install-Package -Force
(el force
es actualizar versiones anteriores)
Puede cadenas de tubos a la misma, o dar los nombres de archivo como directa parámetros.
type foo.txt | less
less foo.txt, bar.txt, baz.txt
funciona en ConEmu y Windows PowerShell, pero por desgracia, no funciona de la manera que cabría esperar bajo la v2.0 ISE.
¡Gracias! ¡Menos es mucho más! – jpaugh
Si se encuentra:
some-cmdlet | out-host -paging
Había usado más y menos antes, y no era tan fácil de usar como creía posible. Encontré que esta variación es más útil/utilizable que las otras. Muchas gracias. – TheXenocide
Para imprimir el contenido de un archivo muy grande, esto funcionó muy bien para mí, ya que el cmdlet Get-Content comenzó inmediatamente a canalizar los contenidos al cmdlet out-host. –
Tenga en cuenta que el parámetro -Paging de Out-Host no es compatible con PowerShell ISE. –
dir -rec | more
es un mal consejo.
Causará PowerShell para evaluar todo el comando antes de darle salida a la pantalla, algo que no se necesita para algo así como la salida paginar
En algunos casos extremos, podría provocar que el sistema se bloquee (por ejemplo dir 'C:\' | more
)
Por otro lado, al usar out-host -paging
, se generará información en la pantalla, ya que está disponible.
Cuando utiliza powershell remoto y desea canalizar un comando en el servidor remoto de Windows a través de un buscapersonas, la tubería a través de 'out-host-paging' funciona como desee. Canalizar 'más' cuando se ejecuta el comando remoto no sirve: todo el texto se muestra a la vez. – IllvilJa
El alias para 'out-host-paging' es' oh -pa'. – Josh
esto es un comentario, en lugar de una respuesta –
que añade una definición de función y el alias al perfil por defecto en %SystemRoot%\system32\windowspowershell\v1.0\profile.ps1
Esta función se basa principalmente en this blog entry by Aman Dhally con el manejo de excepciones añadido para el prensado Q
mientras paginación.
function more2
{
param(
[Parameter(ValueFromPipeline=$true)]
[System.Management.Automation.PSObject]$InputObject
)
begin
{
$type = [System.Management.Automation.CommandTypes]::Cmdlet
$wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(‘Out-Host’, $type)
$scriptCmd = {& $wrappedCmd @PSBoundParameters -Paging }
$steppablePipeline = $scriptCmd.GetSteppablePipeline($myInvocation.CommandOrigin)
$steppablePipeline.Begin($PSCmdlet)
}
process
{
try
{
$steppablePipeline.Process($_)
}
catch
{
break;
}
}
end
{
$steppablePipeline.End()
}
#.ForwardHelpTargetName Out-Host
#.ForwardHelpCategory Cmdlet
}
New-Alias more more2
por lo que sólo se puede llamar como dir -r | more
y inmediatamente comienza paginado de salida debido a la canalización de PowerShell (en contraposición a la espera de la salida completa con more.com).
Si tiene VIM instalado, disfruto completamente dir -r | vim -R -
. Desafortunadamente, esto tiene el mismo problema con more
(es decir, sin transmisión).
Me gusta el comando "menos" mejor que el comando "más" porque también puede ir hacia atrás (en lugar de solo hacia adelante). Encuentro esta característica muy útil.
El "menos" de msysgit funciona para mí (para mí, la ruta es C:\Program Files (x86)\Git\bin\less.exe
). Tuve errores en powershell con la versión GOW de "menos".
Ejemplo:
ls|less
Para guardar escribir añadí el alias de "L" por menos en mi perfil PowerShell:
sal l "C:\Program Files (x86)\Git\bin\less.exe"
Sugerencia: Ponga el archivo en un temporal/archivo .txt desechable, luego deje que el sistema operativo invoque su editor favorito, el que está vinculado a la extensión .txt.
Get-Process | Out-File temp.txt; . \ temp.txt
Nota: cada vez que utilice esto sobrescribirá cualquier archivo temp.txt preexistente. Elija el nombre del archivo sabiamente.
Lo anterior es solo una idea básica.
siguiente paso sería transformando esto en "| más" el uso de alias o funciones de perfil, etc.
HTH, Marcelo Finkielsztein
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
cat C:\Temp\test.txt
gato es un alias de Get-Content - con archivos más grandes que tendrán la - más - de salida en la parte inferior del terminal
puede también puede agregar -wait
cat C:\Temp\test.txt -wait
-wait es como usar la cola, pero en realidad está volviendo a ejecutar el comando simplemente actualizar la salida
cat C:\Temp\test.txt | oh –Paging
oh = Out-Host
- 1. Equivalente al comando * Nix 'which' en Powershell?
- 2. equivalente Powershell del comando Select de LINQ?
- 3. Equivalente al comando C# 'as' en C++?
- 4. ¿Tiene menos un equivalente al desplazamiento de vim?
- 5. más o menos igual sobrecargas
- 6. Equivalente al comando "whos" en Python Numpy
- 7. equivalente de PowerShell del comando 'tipo' de BASH (etc.)?
- 8. R equivalente al comando `compress` de Stata?
- 9. Subversion equivalente al comando 'show' de Git?
- 10. ¿Cuál es el equivalente de PowerShell a este comando Bash?
- 11. Pyramid equivalente al comando syncdb de Django?
- 12. Equivalente al comando "menos" de Unix dentro de la consola R
- 13. Comando Powershell en C#
- 14. ¿Existe un Python equivalente al comando 'which'
- 15. equivalente de PowerShell del operador C# "is"?
- 16. Powershell Comando: rm -rf
- 17. Más controladores pero menos acciones o menos controladores pero más acciones
- 18. Powershell - Redondee al número entero más cercano
- 19. equivalente de su en powershell
- 20. ¿Cómo puedo ver un archivo de registro desde la consola de powershell? (es decir, el equivalente de powershell de 'menos')
- 21. Does powershell tiene un equivalente a popen?
- 22. PHP Powershell comando
- 23. Al usar vim o menos en la pantalla gnu, salir de vim o menos deja una huella persistente
- 24. ¿Hay un Vim equivalente al comando "fold" de Linux/Unix?
- 25. PowerShell: error al ejecutar el comando usando Invoke-Command?
- 26. rsync equivalente comando mv
- 27. Modelos de Django: al menos uno en muchos o muchos
- 28. Debo hacer llamadas más frecuentes y más pequeñas; o llamadas más grandes menos frecuentes?
- 29. Herramientas de línea de comando (o equivalente) para el desarrollo de .NET
- 30. ¿Cómo hacer qué cabeza, cola, más, menos, sed hacer en Powershell?
más hace exactamente eso, cuando echas un vistazo a la definición de la función con gcm más | seleccione Definición | fl – Joey
En realidad, canalizar a más es igual a canalizar a "out-host-paging", que está separado de la implementación de more.com. En la práctica, no hay diferencia discernible. –
Ni en PS1 en Vista ni en PS2 en Win7, al menos para mí."más" es una función que hace un poco de trabajo de antemano y luego simplemente llama a more.com. Out-Host -Paging está separado de eso (y no depende de more.com). La diferencia es más notable cuando utiliza algo que no se devuelve de inmediato, como su ejemplo de gci -rec. La canalización a Out-Host es inmediata, ya que puede procesar la entrada de una línea a la vez, la canalización a más lleva tiempo, ya que PS recoge primero todas las líneas y luego las envía a more.com. – Joey