Compile e execute pequenos blocos de C # diretamente da linha de comando

Usando este arquivo em lote cs.bat:

@echo off
:: see if %1 exists, if not check for %1.cs
set CODE=%1
IF NOT EXIST
%CODE% set CODE=%1.cs
:: init paths
set NETPATH=%systemroot%Microsoft.NETFramework64v4.0.30319
set TEMP_CS=%temp%~temp.%random%.cs
set TEMP_EXE=%temp%~temp.%random%.exe
:: init source class
echo
using System; class P { static void Main() { > %TEMP_CS%
:: see if code file exists, if not treat args as c#
IF EXIST
%CODE% type %CODE% >> %TEMP_CS%
IF NOT EXIST
%CODE% ECHO %* >> %TEMP_CS%
echo
}} >> %TEMP_CS%
:: compile source, remove source, run exe, remove exe
%NETPATH%csc /nologo /out:%TEMP_EXE% %TEMP_CS%
del %TEMP_CS%
%TEMP_EXE%
del %TEMP_EXE%

Em seguida, você pode executar algo assim: cs Console.WriteLine("Hello world");
ou pode passar um link para um único arquivo de texto simples C # também, como:cs some-code.cs

Explique a essência aqui: https://gist.github.com/3018417