即时编译并运行程序

Aks*_*y J 2 c# csc

我有一个奇怪的要求,我被要求在VBScript中编写某个验证脚本,因为它是纯文本.但我对c#感到更舒服.所以无论如何都要在任务调度程序中安排它,以便编译器编译程序(.cs文件中的源代码)并在运行中运行它.

cir*_*rus 5

这作为单个自编译CMD批处理文件非常容易.这个是纯文本和可运行的(从我的博客条目 - 从用户数据文本动态创建可执行文件).

您可以直接将此文本文件作为批处理文件调用,它将作为EXE运行.只需使用.CMD扩展名(包括所有C#代码)保存文件并正常运行.

/* This section is run in batch file mode
%FrameworkDir%%FrameworkVersion%\csc.exe /nologo /out:bootstrap.exe /Reference:%FrameworkDir%%FrameworkVersion%\System.Net.dll "%0"
goto end
*/

using System;

static class Program
{
    static void Main(string[] argv)
    {
        if (argv.Length > 0)
            Console.Write(argv[0]);
        Console.WriteLine();
    }
}
/*
:end

REM ** Run the program
BootStrap.exe "Hello world!"
REM */
Run Code Online (Sandbox Code Playgroud)

/* */意见允许你把批处理文件命令编译本身,当然它们是由C#编译器忽略.批处理(CMD)文件将跳过错误到下一行,因此该文件像EXE exept一样运行它的文本.作为改进,您可能希望将/out目标更改为%TEMP%中的某个位置.

[更新]更简单的Hello World样本.