programing

Powershell의 'more' 명령어 또는 'less' 명령어 중 어느 것에 해당합니까?

javajsp 2023. 4. 14. 21:12

Powershell의 'more' 명령어 또는 'less' 명령어 중 어느 것에 해당합니까?

로 접속하여 를 매기는 ?more ★★★★★★★★★★★★★★★★★」lessLinux\Unix 쉘에서 사용할 수 있는 명령어와 유사합니까?

네, 있습니다.

some-cmdlet | out-host -paging

음... 다른 플랫폼에서 기대할 수 있는 것과 거의 같은 "more"가 있습니다.다음의 예를 시험해 보겠습니다.

dir -rec | more

dir -rec | more나쁜 조언입니다.

출력 페이지 설정 등에는 필요 없는 명령어를 화면에 출력하기 전에 powershell이 명령어 전체를 평가하게 됩니다.

경우 크래쉬할 수 " " " " " " " " " " " " ( " 。dir 'C:\' | more)

「」, 「」를 사용합니다.out-host -paging사용 가능한 대로 화면에 정보를 출력합니다.

Powershell Community Extensions에는 보다 완전한 Unix 스타일의 기능 세트를 제공하는 less라는 이름의 편리한 함수가 있습니다.이 기능은 보다 적은 수의 포트 복사본을 사용합니다.exe를 사용하여 실제로 페이징을 처리합니다.

관리자 셸을 시작하고 다음을 실행하여 설치할 수 있습니다.

Find-Package pscx | Install-Package -Force

(the)force오래된 버전을 업그레이드합니다.)

문자열을 파이프에 연결하거나 파일 이름을 직접 매개 변수로 지정할 수 있습니다.

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

ConEmu 및 Powershell 창에서 작동하지만 안타깝게도 v2.0 ISE에서는 예상대로 작동하지 않습니다.

나는 "more" 명령어보다 "less" 명령어를 선호한다.less 명령어를 사용하면 결과를 앞으로만 이동하는 것이 아니라 뒤로 페이징할 수도 있습니다.

Windows용 Git의 '적음'이 효과적*

이라는 에일리어스를 했습니다(Powershell lnotepad $profile

Set-Alias -Name "l" -Value "${env:ProgramFiles(x86)}\Git\bin\less.exe"

less의 패스 또는 「」의 어느 .C:\Program Files\Git\usr\bin\less.exe또는 이와 유사합니다.


*: Powershell에서 Gow 버전의 "less"에서 오류가 발생했습니다.

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

more출력을 제한하기 위해 사용되는 것이 아니라 출력을 페이지화하여 단말기에서 읽기 쉽게 하기 위해 사용됩니다.

사용법을 말씀하시는 건가요?head ★★★★★★★★★★★★★★★★★」tailEggHeadCafe의 예:

type my.txt | select-object -first 10

type my.txt | select-object -last 10

을 뜨다head ★★★★★★★★★★★★★★★★★」tail.

다른 옵션은 WSL을 통해 사용을 줄이는 것입니다.

some-cmdlet | wsl less

와 에일리어스를 했습니다.%SystemRoot%\system32\windowspowershell\v1.0\profile.ps1

이 함수는 대부분 Aman Daly의 블로그 엔트리에 기초하고 있으며 프레스를 위해 예외 처리를 추가했습니다.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 | morePowerShell의 파이프라인이 있기 때문에 페이지 출력이 즉시 시작됩니다(more.com에서 전체 출력을 기다리는 것이 아니라).

cat C:\Temp\test.txt

cat은 Get-Content의 에일리어스입니다.파일이 클수록 터미널 하단에 [More]출력이 표시됩니다.

wait를 추가할 수도 있습니다.

cat C:\Temp\test.txt -wait 

wait는 tail을 사용하는 것과 비슷하지만 실제로는 출력을 새로 고치는 것만으로 명령어를 다시 실행하고 있습니다.

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

oh = 아웃호스트

VIM이 설치되어 있다면, 저는 정말 즐겁습니다.dir -r | vim -R -유감스럽게도 이것은 같은 문제를 안고 있습니다.more(즉, 스트리밍 없음).

저는 바로 이 질문을 했습니다(더 적은 것을 원한다는 것이 아니라 더 적은 것을 원한다는 것이 아니라) @richard-berg의 답변이 나에게 효과가 있다는 것을 알았습니다.PowerShell을 처음 접한 사람(Linux를 사용하지 않은 사람)에게는 다음과 같은 답변이 있었습니다.난 먼저 가야 했어.

Find-Package pscx | Install-Package

그러면 "installing nuget package"라는 메시지가 나타납니다.이렇게 했는데 이렇게 해서
-AllowClobber파라미터Install-Package.

그리고 사용을 줄이기 위해 다음과 같이 해야 했습니다.

Set-ExecutionPolicy RemoteSigned

모두 성공했습니다:-)

내 생각에 가장 쉬운 것은 UNIX에서 익숙한 모든 것을 Scoop으로 설치하는 것이다.일단 하면, 그냥 뛰어요.scoop install less이제 가도 돼

제안:파일을 임시/폐기 가능한 .txt 파일에 넣은 후 OS가 .txt 확장자에 연결된 즐겨찾기 에디터를 호출하도록 합니다.

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

주의: 이 기능을 사용할 때마다 기존의 모든 임시 온도를 덮어씁니다.txt 파일.파일 이름을 현명하게 고르십시오.

위는 기본적인 아이디어일 뿐입니다.
다음 단계에서는 에일리어스 또는 프로파일 함수 등을 사용하여 "| more"로 변환합니다.

HTH, 마르셀로 핀키엘즈테인

언급URL : https://stackoverflow.com/questions/1078920/equivalent-of-more-or-less-command-in-powershell