11 ответов:
хорошо... Есть "больше", то есть больше или меньше (...) то же самое вы ожидаете от других платформ. Попробуйте следующий пример:
dir -rec | more
dir -rec | moreЭто плохой совет.это заставит powershell оценить всю команду до вывода ее на экран, что-то, что не нужно для чего-то вроде вывода paginating
В некоторых крайних случаях, это может привести к сбою системы (например,
dir 'C:\' | more)С другой стороны, используя
out-host -pagingбудет выводить информацию на экран, как это доступно.
The Расширения Сообщества Powershell есть удобная функция с именем "меньше", которая обеспечивает более полный набор функций в стиле Unix, используя портированную копию less.exe на самом деле ручка подкачки.
вы можете установить его, начиная с admin shell и работает:
Find-Package pscx | Install-Package -Force(the
forceэто обновление старых версий)вы можете передать ему строки или дать имена файлов в качестве прямых параметров.
type foo.txt | less less foo.txt, bar.txt, baz.txtОн работает в ConEmu и Powershell windows, но, к сожалению, это не работает так, как вы ожидали бы под v2.0 ISE.
moreне используется для ограничения выход, он используется для вставить выход и сделать его легче читать в терминале, если что-нибудь.вы говорите об использовании
headиtail? EggHeadCafe пример:type my.txt | select-object -first 10 type my.txt | select-object -last 10эмуляция
headиtail.
Я добавил определение функции и псевдоним в свой профиль по умолчанию по адресу
%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и тут запускает вывод подкачки из-за конвейера PowerShell (в отличие от ожидания полного вывода с помощью more.com).
Если у вас установлен VIM, я полностью наслаждаюсь
dir -r | vim -R -. К сожалению, это страдает та же проблема сmore(т. е. нет потоковой передачи).
мне нравится команда " меньше "лучше, чем команда" больше", потому что вы можете пойти и назад (а не только вперед). Я нахожу эту функцию очень полезной.
"меньше" от msysgit работает для меня (для меня, путь
C:\Program Files (x86)\Git\bin\less.exe). У меня были ошибки в powershell с ГОУ вариант "меньше".пример:
ls|lessчтобы сохранить ввод, я добавил псевдоним " l " для меньшего количества в моем powershell профиль:
sal l "C:\Program Files (x86)\Git\bin\less.exe"
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.txtcat-это псевдоним для Get-Content-с большими файлами вы получите -- More -- output в нижней части терминала
вы также можете добавить-подождите
cat C:\Temp\test.txt -wait-ожидание похоже на использование хвоста, но на самом деле он перезапускает команду, просто обновляя вывод
cat C:\Temp\test.txt | oh –Pagingoh = Out-Host
предложение: поместите файл во временный / одноразовый .txt-файл, а затем пусть ОС вызовет ваш любимый редактор, тот, который связан с ним .расширение txt.
Get-Process / Out-File temp.формат txt. ; \температура.txt
Примечание: каждый раз, когда вы используете это вы будете перезаписывать любой ранее существовавший темп.txt-файл. Выберите имя файла мудро.
выше это просто основная идея.
Следующим шагом будет преобразование этого в "/ more " с использованием псевдонимов или функций профиля, так далее.HTH, Марсело Финкельштейн
Comments