Как избежать записи файла .bat, выполняя файл .cs в виде скрипта? - PullRequest
2 голосов
/ 07 февраля 2012

Я хотел бы написать простой пакетный файл, чтобы скопировать несколько файлов.

Однако я устал от пакетных файлов, поскольку они настолько ограничены, и я хотел бы просто написатьпростой файл .cs, который я могу выполнить в виде сценария непосредственно из командной строки.

Как запустить файл «.cs» из командной строки и запустить сценарий?

Ответы [ 7 ]

5 голосов
/ 07 февраля 2012

Вы не сможете, если не скомпилируете. Однако PowerShell имеет синтаксис, аналогичный C #, и очень мощный.

4 голосов
/ 07 февраля 2012

Вам необходимо скомпилировать его в исполняемый файл, а затем запустить этот исполняемый файл.

Может быть, вы могли бы написать пакетный файл для достижения этого?


На более серьезномобратите внимание, обратите внимание на Powershell как на альтернативу, упомянутую в ответе Скотма (который я + 1ed соответственно).

1 голос
/ 07 февраля 2012

См. http://www.csscript.net/, если вы установите его, вы можете запускать простые .cs-файлы, такие как пакетные файлы DOS (т.е. не нужно компилировать их в проект).

1 голос
/ 07 февраля 2012

Microsoft Roslyn позволяет вам запускать файл C # из командной строки, точно так же как командные файлы, PowerShell, Python и т. Д.

Шаг 1: Установите Roslyn, создайте новое консольное приложение, затем используйте следующую строку для выполнения скрипта:

scriptEngine.ExecuteFile("DemoClass.cs");

или

scriptEngine.ExecuteFile("DemoScript.csx");

Шаг 2: Свяжите файлы ".csx" с вашим скомпилированным консольным приложением, и они будут выполняться так же, как если бы они были скомпилированы в проект Visual Studio.

Теперь мне больше никогда не нужно писать командный файл DOS.

Обновление

0 голосов
/ 13 марта 2014
    $Source = (gc csharpfilename.cs|Out-String)
    #compile Csharp
    Add-Type -TypeDefinition $Source -Language CSharp

    #Call you function like this
    [namespaceName.className]::functionName("Parameters/Arguments")
0 голосов
/ 07 февраля 2012

Попробуй это.http://www.sliver.com/dotnet/SnippetCompiler/ То я не совсем уверен, что это то, что вы ищете.

0 голосов
/ 07 февраля 2012

Вы можете посмотреть, как компилировать программы в командной строке.Используя эту технику, вы могли бы подать в ваш файл .cs, скомпилировать .exe, а затем запустить .exe.

http://msdn.microsoft.com/en-us/library/ms172492%28v=vs.80%29.aspx

Однако, похоже, это будет немного громоздко,Что плохого в том, чтобы просто запустить Visual Studio и действительно быстро набрать код в проекте командной строки?

...