如何通过命令行在powershell中使用Add Type来执行VB.NET或C#(或JScript.NET)代码?

如何通过命令行在powershell中使用Add Type来执行VB.NET或C#(或JScript.NET)代码?,c#,vb.net,powershell,jscript.net,add-type,C#,Vb.net,Powershell,Jscript.net,Add Type,这是有关的MS文档 所以我尝试通过命令行添加类型: >powershell Add-Type -TypeDefinition "public class T{public static int Add(int a, int b){return (a + b);}}" -Language CSharp 或 或 或 但无论我尝试什么,执行都会返回一个错误。是否可以通过cmd控制台调用powershell来添加类型?然后执行添加的方法?以下是您无法执行所做操作的原因,文档特别说明了这一点 这种

这是有关的MS文档

所以我尝试通过命令行添加类型:

>powershell Add-Type -TypeDefinition "public class T{public static int Add(int a, int b){return (a + b);}}" -Language CSharp


但无论我尝试什么,执行都会返回一个错误。是否可以通过cmd控制台调用powershell来添加类型?然后执行添加的方法?

以下是您无法执行所做操作的原因,文档特别说明了这一点

这种标点符号叫做a,它有特定的用途

如果在真实的PowerShell编辑器(ISE、VSCode)中执行此操作,请注意,将所有这些放在一行会生成语法错误

正确的此处字符串

$Source = @"
public class T
{
    public static int Add(int a, int b)
    {
        return (a + b);
    }
}
"@
这不正确(将显示语法错误突出显示)

。。。因为这些“@”“@”必须在单独的行上并完全左对齐,并且任何内容都不能在同一行的第一个后面或在同一行的第二个前面

这不会显示语法错误突出显示:

$Source = @"
public class T{public static int Add(int a, int b){return (a + b);}}
"@
。。。这可以在PowerShell控制台主机中完成,但不能在调用powereshell.exe的cmd.exe中完成

consolehost不会显示语法错误以及编辑器(如果在本例中显示的话)

每当您在consolehost中键入需要CRLF或类似文件的代码时,都必须以这种方式键入。最后,在cmd.exe中执行此操作永远不会显示PowerShell语法错误,除非您尝试运行它

这是关于全面理解PowerShell语法和标点符号的所有内容


你是说,你已经在一个真正的编辑器,ISE,VSCode中尝试了你的代码,它工作了,并且确保它在语法上是正确的,然后你在控制台主机中手动键入它,它总是失败?我的问题是,为什么要在交互式控制台中执行此操作?只是好奇,因为这不是我见过的任何人做/写或需要做的正常事情。我想不出这种方法的用例,但是大家都有他们的理由。不用担心。很高兴它有用。请记住,在cmd.exe中执行的任何操作都可以在powershell.exe中执行,当然还有更多。相对于环境,有一些事情需要解决,但是每天使用powershell.exe,您就会习惯它。您可以根据需要从PowerShell调用cmd.exe或其他exe。另外,看看Windows终端。和VSCode-
>powershell Add-Type -TypeDefinition @"public class T{public static int Add(int a, int b){return (a + b);}}"@ -Language CSharp
$Source = @"
public class T
{
    public static int Add(int a, int b)
    {
        return (a + b);
    }
}
"@
$Source = @"public class T{public static int Add(int a, int b){return (a + b);}}"@
$Source = @"
public class T{public static int Add(int a, int b){return (a + b);}}
"@