Нужна помощь с этим скриптом Powershell - PullRequest
1 голос
/ 22 июня 2011

У меня есть код powershell ниже, который получит все проекты в решении по имени.

Однако я хочу получить только те проекты, которые начинаются с «Test» (игнорируйте бит -match, так как я играл с разными вещами). Чего мне не хватает?

cd C: \ SourceControlledProjects \ ClassLibrary1

gc ClassLibrary1.sln | ? {$ _ -match "^ Project"} | % {($ .Split (",")) [1] .Trim (). Trim ('"')} | ? {$ -match ". * Proj"} | % {$ x = [xml] (gc $ ); $ x.Project.PropertyGroup [0] .AssemblyName} % {$ + ".dll"} | Формат-Таблица | Где {$ _ -match "TestProject1"}

Спасибо

1 Ответ

2 голосов
/ 22 июня 2011

Это должно облегчить жизнь:

gc .\test.sln | 
    Where-Object  {
        $_.StartsWith("Project(")  
    }  | 
    ForEach-Object { 
        $name, $relativePath, $guid  = ($_ -split '=' | Select-Object -Skip 1) -split '[,"]' |
            Where-Object { $_.Trim() } 
        New-Object PSObject -Property @{
            Name = $name
            RelativePath = $relativePath
            Guid = $guid
        }
    }  

Это превращает вывод в пакет свойств, с этого момента это просто:

| Where-Object { $_.Name -like "test*" }

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...