Эквивалент команды «больше» или «меньше» в Powershell?

Есть ли способ разбить вывод на страницы, добавив его в несколько «больше»? команда, которая доступна в оболочках linux \ unix?

Ответы на вопрос(11)

dir -rec | more плохой совет.

Это заставит powershell оценить всю команду перед выводом ее на экран, что не нужно для чего-то вроде разбивки на выходные данные.

В некоторых крайних случаях это может привести к сбою системы (например,dir 'C:\' | more)

С другой стороны, используяout-host -paging выведет информацию на экран, как она доступна.

 22 февр. 2013 г., 11:35
Когда вы используете удаленную PowerShell и хотите передать команду на удаленный сервер Windows через пейджер, по трубопроводуout-host -paging  работает по желанию. Трубопроводmore при запуске удаленная команда бесполезна: весь текст отображается сразу.
 05 июн. 2015 г., 18:40
Псевдоним дляout-host -paging являетсяoh -pa.

Расширения сообщества Powershell иметь удобную функцию с именем «меньше» это обеспечивает более полный набор функций в стиле Unix, используя перенесенную копию less.exe для фактической обработки подкачки страниц.

Вы можете установить его, запустивadmin shell и работает:

Find-Package pscx | Install-Package -Force

(force это обновить старые версии)

Вы можете передать ему строки или указать имена файлов в качестве прямых параметров.

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

Он работает в окнах ConEmu и Powershell, но, к сожалению, он работает не так, как вы ожидаете в версии 2.0 ISE.

 22 февр. 2019 г., 10:47
Спасибо за отличный совет!
 12 авг. 2018 г., 10:33
Установка переопределяет несколько основных команд Powershell (gcb, Expand-Archive, Format-Hex, Get-Hash, help, prompt, Get-Clipboard, Get-Help, Set-Clipboard), так чтоforce обновить старые версии & quot; кажется немного вводящим в заблуждение.
 07 сент. 2018 г., 15:15
просто установка для текущего пользователя без ошибок или предупреждений:Find-Package pscx | Install-Package -Force -scope currentuser -allowclobber

Предложение: поместите файл во временный / одноразовый файл .txt, а затем позвольте ОС вызвать ваш любимый редактор, связанный с расширением .txt.

Get-Process | Out-File temp.txt; . \ Temp.txt

Примечание: каждый раз, когда вы используете это, вы будете перезаписывать любой существующий файл temp.txt. Выберите имя файла с умом.

Выше просто основная идея.
Следующим шагом будет преобразование этого в & quot; | более & Quot; использование псевдонимов или функций профиля и т. д.

НТН, Марсело Финкельштейн

Решение Вопроса

что более или менее (...) такое же, как вы ожидаете от других платформ. Попробуйте следующий пример:

dir -rec | more
 03 июл. 2009 г., 16:17
Извините, это было не очень хорошо написано. Поэтому я хотел сказать, что в Vista с PowerShell 1 нужно было просто «еще». вызывает Out-Host -p, в то время как на W7 с PowerShell 2 он вызывает more.com.
 03 июл. 2009 г., 16:15
Интересно! Для меня gcm more возвращает два определения, одно из них - это функция PowerShell, которая, если ей дан пустой аргумент, выполняет $ input | out-host -p & quot ;, который представляет собой поведение, которое я вижу в gci -rec | Больше. С другой стороны, когда я делаю gci -rec | more.com, у меня нормальное поведение more.com. На W7 RC с установленной PS2 я также, похоже, получаю more.com, даже когда просто набираю "more". На Vista с PS1 происходит описанное выше поведение. На основеhuddledmasses.org/…Не думаете ли вы, что эта функция должна выполняться и на W7? Хм ...
 03 июл. 2009 г., 14:37
more делает именно это, когда вы смотрите на определение функции с помощью gcm more | select Definition | fl
 03 июл. 2009 г., 14:50
На самом деле, отсылка к more равна piping для "out-host -paging", которая отделена от реализации more.com. На практике нет заметной разницы, хотя.
 04 июл. 2009 г., 02:59
Да, я стою исправлено. Сожалею. Да, действительно, в PS 1 он вызывает Out-Host -p, а не more.com (обратите внимание на себя: всегда читайте всю функцию, даже если она выглядит очень похоже)

Если у вас установлен VIM, я полностью наслаждаюсьdir -r | vim -R -, К сожалению это страдает той же проблемой сmore (т.е. нет потоковой передачи).

Да, есть:

some-cmdlet | out-host -paging

 18 дек. 2017 г., 19:10
Также прокомментируйте ответ: псевдонимoh дляOut-Hostи параметры могут быть сокращены, если нет конфликта, поэтому команда может бытьSome-Cmdlet | oh -p
 17 апр. 2012 г., 19:38
Более чем на десять лет старше иless еще мощнее ...
 16 сент. 2011 г., 01:37
Обратите внимание, что параметр -Paging Out-Host не поддерживается в PowerShell ISE.
 17 июн. 2010 г., 22:32
Раньше я использовал все больше и меньше, и не настолько удобен для пользователя, как мне кажется возможным. Я обнаружил, что этот вариант более полезен / полезен, чем другие. Спасибо большое.
 15 сент. 2010 г., 10:24
Для печати содержимого очень большого файла это работало очень хорошо для меня, так как командлет Get-Content начал немедленно передавать содержимое в командлет out-host.

Я предпочитаю «меньше» команда над "больше" команда. С помощью команды less результаты также можно перемещать назад, а не только вперед.

«Меньше» отGit для Windows работает для меня (Мой путьC:\Program Files (x86)\Git\usr\less.exe, У меня были ошибки в Powershell сГоу версия "меньше".

Пример:

ls|less

Чтобы сохранить набор текста, я добавил псевдоним & lt; l & quot; за меньшее в моем профиле Powershell:

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

 22 февр. 2019 г., 10:47
Я тоже. Помимо постраничного просмотра в обратном порядке, less позволяет мне выполнять поиск текста по результату (косая черта, затем ввести текст, затем нажать ввод, затем «n» для следующего результата, «p» для предыдущего результата). Очень, очень, удобно.

more не используется дляlimit выход, он используется дляpaginate вывод и облегчить чтение в терминале, если что.

Вы говорите об использованииhead а такжеtail? EggHeadCafe имеет пример:

type my.txt | select-object -first 10

type my.txt | select-object -last 10

подражатьhead а такжеtail.

 13 янв. 2017 г., 04:01
Трубопровод очень медленный для больших файлов. Есть лучшие способы (встроенные опции), чтобы сделатьhead а такжеtail в PowerShell сейчас:stackoverflow.com/a/41626586/1081043
cat C:\Temp\test.txt

cat - это псевдоним для Get-Content - с большими файлами вы получите вывод - More - внизу терминала

Вы также можете добавить -подождать

cat C:\Temp\test.txt -wait 

-wit похоже на использование tail, но на самом деле он запускает команду просто обновляя вывод

cat C:\Temp\test.txt | oh –Paging

о = Out-Host

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

Я добавил определение функции и псевдоним в свой профиль по умолчанию на %SystemRoot%\system32\windowspowershell\v1.0\profile.ps1

Эта функция в основном основана наэта запись в блоге Аман Дхалли с добавленной обработкой исключений для нажатияQ пока пейджинг.

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

так что я могу просто назвать это какdir -r | more и этоimmediately запускает постраничный вывод из-за конвейера PowerShell (в отличие от ожидания полного вывода с more.com).

Ваш ответ на вопрос