Не совсем понятно, что именно вы получите, но я постараюсь угадать, см. Мои комментарии в коде.Исходный код, я думаю, содержит несколько ошибок, одна серьезная: Set-Content
используется в неправильном конвейере / цикле.Вот исправленный код.
function Insert-Usings
{
trap {
Write-Host ("ERROR: " + $_) -ForegroundColor Red
return $false
}
(Get-ChildItem $base_dir -Include *.asmx,*.ascx,*.cs,*.aspx -Force -Recurse -ErrorAction:SilentlyContinue) | % {
$fileName = $_.FullName
(Get-Content $fileName) | % {
if ($_ -cmatch "using Company\.Shared;") {
# just replace
$_ -creplace "using Company\.Shared;", "using Company.Common;"
}
elseif ($_ -cmatch "using Company") {
# write the original line
$_
# and add this after
"using Company.Services.Contracts;"
}
else{
# write the original line
$_
}
} |
Set-Content $fileName
}
}
Например, он заменяет это:
xxx
using Company.Shared;
using Company;
ttt
следующим:
xxx
using Company.Common;
using Company;
using Company.Services.Contracts;
ttt
Примечание: предположительно, вам не следует применятьэтот код для источников более одного раза, код не предназначен для этого.