我在 C# 类上运行了以下 powershell 脚本,以便用空构造函数替换构造函数。我正在对许多自动生成的文件执行此操作。
$nl = [Environment]::NewLine
foreach($item in Get-ChildItem $path) {
if($item.extension -eq ".cs") {
$name = $item.name
$name = $name.replace('.cs', '')
$reg = '(public ' + $name + '\(.*?\})'
$constructorString = [regex]$reg
$emptyConstructor = 'public ' + $name + '()' + $nl + '{' + $nl + '}' + $nl
Get-Content $item.fullname -Raw | Where-Object { $_ -match $constructorString } | ForEach-Object { $_ -replace $constructorString, '$1'}
}
}
这些类有一种形式
public Bar()
{
this.foo = new Foo();
}
这导致没有匹配项,如果需要更多信息,请告诉我。