One of my biggest annoyances about nuget and powershell in general is the lack of universal support for unix like features such as pipe and grep. Lets say you have a solution with multiple projects in and you want to update to the latest versions of your internal dependencies, you’d proabably do something like.

Update-Package CompanyFoo.Package1
Update-Package CompanyFoo.Package2
Update-Package CompanyFoo.Package3

In the gems world you could do something like

gem update `gem list | grep CompanyFoo | cut -d ' ' -f 1`

What I’d like to be able to do is something like

Update-Package -like CompanyFoo

Or even

Update-Package | List-Package -like CompanyFoo

Sadly the closest I got was going though each packages.config file and filtering down the list

Get-ChildItem -path '.' -Recurse -Include 'packages.config' |
 Select-Xml -xpath '//package/@id' |
 Select-Object -ExpandProperty Node |
 Select-Object -ExpandProperty value |
 Sort-Object -Unique |
 Where-Object {$_ -like 'CompanyPackages*'} |
 ForEach-Object { Update-Package $_ }


I take it all back, @neilbarnwell pointed out this lovely one liner

get-project -all | get-package | ?{ $_.Id -like 'Stripe*'} | Update-Package