Get-Module-ListAvailable:유 또는 방법은 모듈에 인쇄 된 섹션에 의해 나누어 디렉토리?

0

질문

내가 할 때"Get-Module-ListAvailable",powershell 것 인쇄 169 모듈을 사용합니다. 예를 들어:

    Directory: C:\Program Files (x86)\Microsoft SQL Server\150\Tools\PowerShell\Modules


ModuleType Version    Name                                ExportedCommands                                                               
---------- -------    ----                                ----------------                                                               
Manifest   15.0       SQLPS                               {Backup-SqlDatabase, Save-SqlMigrationReport, Invoke-PolicyEvaluation, Resto...


    Directory: C:\Users\user\Documents\WindowsPowerShell\Modules


ModuleType Version    Name                                ExportedCommands                                                               
---------- -------    ----                                ----------------                                                               
Script     3.0.1      DotNetVersionLister                 Get-STDotNetVersion                                                            
Script     1.4.7      PackageManagement                   {Find-Package, Get-Package, Get-PackageProvider, Get-PackageSource...}         
Script     2.2.5      PowerShellGet                       {Find-Command, Find-DSCResource, Find-Module, Find-RoleCapability...}          
Script     2.2.16     VSSetup                             {Get-VSSetupInstance, Select-VSSetupInstance}                                  


    Directory: C:\Program Files\WindowsPowerShell\Modules


ModuleType Version    Name                                ExportedCommands                                                               
---------- -------    ----                                ----------------                                                               
Script     1.3.1      Configuration                       {Import-Configuration, Export-Configuration, Get-StoragePath, Add-MetadataCo...

때 나는 캡쳐 이열에서:"$m=Get-Module-ListAvailable" 그것은 간단한 배열,아직 그것은 또한 인쇄물에 이러한 섹션이 있습니다.

이것은 어떻게?

없어도 될 것 같은"디렉토리에"속성에 PSModuleInfo 개체입니다.

powershell
2021-11-23 19:46:21
2

최고의 응답

4

Powershell 가 자신의 서식 엔진입니다. 을 사용할 때마다는 cmdlet,당신의 목록을 출력 System.Management.Automation.PSModuleInfo 체입니다.

인쇄하기 전에 객체"원",Powershell 확인이 있는 경우 미리 지정된 형식 사용할 수 있는 형식 및 그렇다면,적용합니다. 무엇을 보고의 결과는 변화입니다.

최대 PS5.1,이 포맷을 통해 구성 파일로 정의*.ps1xml 파일이 있습니다. 에서 PS6.0 고 최신,미리 정의된 형식은 지금에 직접 포함되어의 소스 코드에서 하지만 당신은 만들 수 있습니다 여전히 추가적인 형식으로 파일을 필요합니다.

당신이 볼 수 있는 로드 포맷을 사용하여 유형 Get-FormatData 합니다.

관심이 있다면에 Get-Module cmdlet 특히,체크 아웃 (Get-FormatData -TypeName System.Management.Automation.PSModuleInfo).FormatViewDefinition. 당신은 다음과 같은 결과가 표시됩니다:

Name   Control
----   -------
Module System.Management.Automation.TableControl
Module System.Management.Automation.WideControl
Module System.Management.Automation.ListControl

이 의미는 어떤 물체의 형식이 특별 지침에 대하여는 방식으로 출력하는 그 개체입니다. 이 경우에는,포함한 그룹에 의해 경로를 표시하는 특정 열(ModuleType,버전,이름,ExportedCommands). Powershell 하지 않았을 선택한 표시 그의 속성 자체가,그것의 지침을 미리 정의된 유형에 무엇을 표시합니다.

의 경우에는 PSModuleInfo 형식,우리가 볼 수 있는 3 사용자 지정 뷰에 대한 형식입니다. 한 테이블에 대한 전망(기본적으로 다음과 같),중 하나에 대한 목록과 넓은,어떤 지시를 표시할 때 사용 Format-List & Format-Wide.

MS doc

표시 형식에 대한 개체에 의해 반환되는 명령 (cmdlet,기능,그리고 스크립트)를 사용하여 정의된 형식 파일(형식입니다.ps1xml 파일). 이러한 파일에 의해 제공됩 PowerShell 을 정의 디스플레이 형식으로 사람들을 위해 개체 반환에 의해 PowerShell 제공하는 명령과 같이 시스템입니다.Diagnostics.프로세스 체 반환에 의해 얻을 처리합니다. 그러나,당신은 또한 수 당신의 자신을 만들 사용자 지정 형식 파일의 기본값을 덮어 표시 형식 또는 쓸 수 있는 사용자 정의 형식의 파일을 정의할 의 디스플레이에 의해 반환되는 개체는 자신의 명령입니다.

PowerShell 데이터를 사용하여 이런 형식의 파일을 결정 이 표시되고 어떻게 표시되는 데이터가 포맷됩니다. 표시 데이터 포함할 수 있는 객체의 속성이나의 가치 스크립트입니다.

당신은 당신의 자신을 만들 수 있는 파일(*.ps1xml)및 그들을 포함하는 모듈 또는 부하들이 당신의 세션에서 수정하는 방법으로 출력을 표시합니다.

할 수도 있습니다 추가 서식하는 출력 기능을 정의하여 기본값을 설정 표시(즉,어떤 특성을 표시해야 하).

예를 들면,이 간단한 기능:


  Function Get-EmployeesInfos() {
    $Output = @(
        
        [PSCustomObject]@{
            FirstName            = 'RObert'
            LastName             = 'Samson'
            SocialSecurityNumber = '123 344 555'
            Age                  = '32'
            Salary               = '100000'
        },
        
        [PSCustomObject]@{
            FirstName            = 'Pablo'
            LastName             = 'Morrison'
            SocialSecurityNumber = '123 345 555'
            Age                  = '22'
            Salary               = '10000'
        }


    )
    
    # Default display set
    $defaultDisplaySet = 'FirstName', 'LastName'
    $defaultDisplayPropertySet = New-Object System.Management.Automation.PSPropertySet('DefaultDisplayPropertySet', [string[]]$defaultDisplaySet)
    $Output | Add-Member MemberSet PSStandardMembers ([System.Management.Automation.PSMemberInfo[]]@($defaultDisplayPropertySet)) -Force
    return $Output


    return $Output
  }

없이 기본 설정 표시,당신은 당신의 표준출력으로 모든 속성을 나열됩니다.

enter image description here

와의 기본 디스플레이 설정을 추가,여기에 새로운 출력됩니다.

enter image description here

모두 출력렇게 동일한 정보가 포함되어 있지만,콘솔 특별한 형식에 적용시에만 가장 중요한 것이 무엇인지,용,등등....

당신이 사용할 수 있는 서식 보기:

  • 화 출력
  • 을 만들이 나무
  • 변화에 따라 출력 조건
  • 추가 가상 속성
  • 정의 열의 폭
  • 정의 표시되는 열 title
  • 등...

참고:

서식 파일을 개요

4Sysops-포맷 개체 출력에서 Powershell 형식입니다.ps1xml 파일

Update-="텍스트/자바 스크립트"

2021-11-24 00:29:40
1

는 이유 Get-Module 를 보여주는 결과 에 그룹 이기 때문에 기본 형식 Module 체할 때마다 PowerShell 보여줍니다. 그것은 특정 기능의 Get-Module 음과 같습니다.

이것은 편리한 시설이기 때문에 일반적으로 사용할 수 있습니다 cmdlet 등 Sort-ObjectWhere-Object 하는 결과를 정렬하고 필터링하고 그 결과에 표시된 그룹이다.

다음 예에서 결과 필터링하고 다음에 표시된 그룹이 있습니다. 중요성이 그 어느 Get-ModuleWhere-Object 가 알고 있는 최종 결과에 표시됩니다 그룹,그들은 단지 다룰 수 있습니다.

PS> Get-Module -ListAvailable | Where-Object Name -Match Read

    Directory: C:\program files\powershell\7\Modules

ModuleType Version    PreRelease Name
---------- -------    ---------- ----
Script     2.1.0                 PSReadLine                          ...
Binary     2.0.3                 ThreadJob                           ...

    Directory: C:\Program Files\WindowsPowerShell\Modules

ModuleType Version    PreRelease Name
---------- -------    ---------- ----
Script     2.0.0      beta2      PSReadline                          ...

당신이 볼 수있는 무엇 PowerShell 하고 있는 이 특정한 경우여 기본 코드 서식 모듈 습니다. 관련 부분입니다 GroupByScriptBlock 전화(작은 포맷을 줄이는 라인 길이):

yield return new FormatViewDefinition("Module",
    TableControl.Create()
        .GroupByScriptBlock(@"
            Split-Path -Parent $_.Path | ForEach-Object {
                if([Version]::TryParse((Split-Path $_ -Leaf), [ref]$null)) {
                    Split-Path -Parent $_
                } else {
                    $_
                }
            } | Split-Path -Parent", customControl: sharedControls[0])
        .AddHeader(Alignment.Left, width: 10)

        ...

때 PowerShell 쇼열 모듈의 개체를 사용자가 사용하는 기본 형식으로,그것은 스크립트를 실행할 블록 GroupByScriptBlock 각 개체에 대한 첫 번째 작업 그룹입니다.

2021-11-23 21:29:07

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................