如果我使用嵌入式 C# 运行以下 powershell,它就可以工作
$Source = @"
public class BasicTest
{
// Multiply two numbers
public int Multiply(int a, int b)
{
return (a * b);
}
}
"@
Add-Type -TypeDefinition $Source
$BasicTestObject = New-Object BasicTest
$BasicTestObject.Multiply(5, 2)
如果我将 C# 位放入文件 BasicTest.cs 并使用 get-content,则会失败
public class BasicTest
{
// Multiply two numbers
public int Multiply(int a, int b)
{
return (a * b);
}
}
powershell代码
$Source = Get-Content -Path ".\BasicTest.cs"
Add-Type -TypeDefinition "$Source"
$BasicTestObject = New-Object BasicTest
$BasicTestObject.Multiply(5, 2)
有一条以
开头的大错误消息Add-Type : c:\Users\xwb\AppData\Local\Temp\1bpg0e0c.0.cs(1) : } expected
这是因为整个文件被读取为 1 行,并且 // 注释掉了文件的其余部分。 如果我将 // 注释更改为 /* */
public class BasicTest
{
/* Multiply two numbers */
public int Multiply(int a, int b)
{
return (a * b);
}
}
代码有效,我得到结果 10。
问题是,在 Visual Studio 或 VS Code 或 Notepad++ 中,如何将所有 // 注释替换为 /* */。 我可以找到评论
//.*
我应该在替换钻头中放入什么? 我试过没成功
/*.**/
/*{.*}*/
此匹配正则表达式为
^([^/{2}]*)//(.*)
,替换正则表达式为 $1/*$2*/
。/
的第一次迭代,并封装 /*
和 */
之间的线,从上述第一个 //
的位置开始