需要有关此Powershell脚本的帮助

时间:2011-06-21 22:03:36

标签: powershell

我有下面的powershell代码,它将通过名称获得解决方案中的所有项目。

但是,我想得到那些以“Test”开头的项目(忽略-match位,因为我玩过各种各样的东西)。我错过了什么?

cd C:\ SourceControlledProjects \ ClassLibrary1

gc ClassLibrary1.sln |     ? {$ _ -match“^ Project”} |     %{($ .Split(“,”))[1] .Trim()。修剪('“')} |     ? {$ -match“。* proj”} |     %{$ x = [xml](gc $ ); $ x.Project.PropertyGroup [0] .AssemblyName}     %{$ +“。dll”} |格式表|其中{$ _ -match“TestProject1”}

由于

1 个答案:

答案 0 :(得分:2)

这应该让生活更轻松:

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*" }

希望这有助于