Skip to content

Instantly share code, notes, and snippets.

@Wind010
Created March 17, 2023 22:11
Show Gist options
  • Select an option

  • Save Wind010/c48e337e0e1bd8bfd64cbce254dde1fc to your computer and use it in GitHub Desktop.

Select an option

Save Wind010/c48e337e0e1bd8bfd64cbce254dde1fc to your computer and use it in GitHub Desktop.
Replace one string with another in files with specific extension recursively from given pat
$replaceDict = @{
'<PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />' = '<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0" />'
'<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.0" />' = '<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.0" />'
'<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="7.0.0" />' = '<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="6.0.0" />'
'<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />' = '<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />'
'<PackageReference Include="Microsoft.Extensions.Configuration.DependencyInjection" Version="7.0.0" />' = '<PackageReference Include="Microsoft.Extensions.Configuration.DependencyInjection" Version="6.0.0" />'
'<PackageReference Include="Microsoft.Extensions.Configuration.Options" Version="7.0.0" />' = '<PackageReference Include="Microsoft.Extensions.Configuration.Options" Version="6.0.0" />'
'<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="7.0.0" />' = '<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="6.0.0" />'
}
Get-ChildItem -Path . -Recurse -Include *.csproj |
ForEach-Object {
$fileContent = Get-Content $_.FullName
# Replace each key in the dictionary with its corresponding value
foreach ($key in $replaceDict.Keys) {
$fileContent = $fileContent -replace $key, $replaceDict[$key]
}
Set-Content $_.FullName $fileContent -encoding utf8
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment