IT:AD:Powershell:HowTo:Examples
Misc
(Get-childitem -include AssemblyInfo.cs -recurse) | Foreach-Object { Set-Content $_ ((Get-content $_) -replace “(\d\.\d\.\d)\.\d*”, “%build.number%”)}
Resources
Example (used in K2 projects):
$xml = [xml](get-content "../references.config");
$projects = $xml.SelectNodes("/root/projects/project");
$excludes = $xml.SelectNodes("/root/excludes/exclude");
$excludesList = New-Object "System.Collections.ObjectModel.Collection[System.String]"
foreach ($_ in $excludes) { $excludesList.Add($_.innerText)}
#Write-Host ($list);
# Loop through each Project *Path* (not name) (usually Parrallel in *.sln)
foreach($project in $projects){
$path = $project.innerText + "\bin";
# See if the Referenced Bin's directory exists.
$exists = Test-Path $path;
# Write-Host ('PROJECT:' + $path + "[" + $exists +"]");
if ($exists){
# Copy Files from that Project's Bin directory to the K2's Bin directory.
Write-Host ("Cool...");
#Copy-Item ($path + "*") ".\bin\";
$source = resolve-path $path
$dest = resolve-path ".\bin"
#$exclude = @('*.pdb','*.config')
Write-Host ($source);
Write-Host ($dest);
#Get-ChildItem $source -Recurse -Exclude $exclude |
# Copy-Item -Destination {Join-Path $dest $_.FullName.Substring($source.length)}
Get-ChildItem $source -Exclude $list | Where-Object { $_.Length -ne $null }| Copy-Item -Force -Destination {Join-Path $dest $_.Name}
}
}
Example:
$name="XAct.Core";$i=50; While ($i -le 500) {c:\ProgramFiles\Nuget\Nuget delete $name 0.0.$i 3ac5a5f6... -NoPrompt; $i +=1}
Taken a bit further, that became:
$xml = [xml](get-content "c:\NugetPackagesToCleanup.config");
$packageNodes = $xml.SelectNodes("/packages/package");
$packageNameList = New-Object "System.Collections.ObjectModel.Collection[System.String]"
foreach ($_ in $packageNodes) { $packageNameList.Add($_.innerText)}
Write-Host("....");
foreach($package in $packageNameList){
Write-Host ($package);
$i=50;
$iMax=530;
$apiKey="3ac5a5f6-166a-4e93-9dbf-6499e136ffb7";
While ($i -le $iMax)
{
c:\ProgramFiles\Nuget\Nuget delete $package 0.0.$i -ApiKey $apiKey -NoPrompt
$i +=1;
}
}
That's searching something that looks like:
<?xml version="1.0"?> <packages> <package>XAct.Collections</package> <package>XAct.Core</package> <package>XAct.Data</package> <package>XAct.IO</package> <package>XAct.Data.Db</package> <package>XAct.UI.Core</package> <package>XAct.UI.Web</package> <package>XAct.Data.Mapping</package> <package>XAct.Resources</package> <package>XAct.Resources.Db</package> <package>XAct.Services.IoC.ASPMVC.Ninject</package> <package>XAct.Services.IoC.ASPMVC.Unity</package> <package>XAct.Services.IoC.ASPNet.Ninject</package> <package>XAct.Services.IoC.ASPNet.Unity</package> <package>XAct.Services.IoC.Ninject</package> <package>XAct.Services.IoC.Unity</package> <package>XAct.Settings</package> <package>XAct.Data.Db.EF</package> <package>XAct.Environment.IIS</package> <package>XAct.IO.FS</package> <package>XAct.Runtime.InteropServices</package> <package>XAct.Security</package> <package>XAct.Security.Windows</package> <package>XAct.Workflows.K2.CLient</package> <package>XAct.IO.TemplateENgines.NVelocity</package> <package>XAct.IO.Compression.DotNetZip</package> <package>XAct.IO.Compression.ZipPackage</package> <package>XAct.Security.Web</package> <package>XAct.EnterpriseLibrary</package> <package>XAct.Diagnostics.Log4Net</package> <package>XAct.IO.FileSystemWatcher</package> <package>XAct.Configuration</package> <package>XAct.Settings</package> <package>XAct.Dependency.K2.Client</package> <package>XAct.Settings.Host.AppSettings</package> <package>XAct.UI.Web.Mvc.v3</package> <package>XAct.Workflows</package> <package>XAct.ServiceProcess</package> <package>XAct.Services.IoC</package> <package>XAct.Workflows.Mocsk</package> <package>XAct.Resources.Db.EF</package> <package>XAct.Services.IoC.AspMvc</package> <package>XAct.Domain</package> <package>XAct.ObjectMapping</package> <package>XAct.History</package> <package>XAct.Sharepoint.Client</package> <package>XAct.XAct.UI.Web.Resources</package> <package>XAct.History.I.Db.EF</package> <package>XAct.UI.Db.EF</package> <package>XAct.UI.Web.Mvc</package> <package>XAct.ObjectMapping.AUtoMapper</package> <package>XAct.Language</package> <package>XAct.Languages.JS.Jurassic</package> <package>XAct.Rules</package> <package>XAct.Rules.Db.EF</package> </packages>