2012-02-07 15 views
2

いくつかのファイルをコピーするための単純なバッチファイルを作成したいと思います。.csファイルをスクリプトとして実行して、.batファイルを書き込まないようにするにはどうすればよいですか?

しかし、私はバッチファイルが非常に制限されているので飽き飽きしています。コマンドラインから直接スクリプトとして実行できるシンプルな.csファイルを作成したいと思います。

コマンドラインから ".cs"ファイルを実行してスクリプトを実行するにはどうすればよいですか?

+1

'Write-Output" <3 PowerShell "' – Polynomial

答えて

1

あなたはそれをインストールする場合は、単純なの.csファイルを実行することができ、http://www.csscript.net/を参照してくださいに説明するように、あなたは、セッションが必要になりますDOSのバッチファイルのようにそれらをプロジェクトにコンパイルする必要はありません)。

5

コンパイルしないとできません。しかし、PowerShellはC#と似た構文を持ち、非常に強力です。

+2

*あなたは似ている点があります。 – Joey

+0

私は自分の手の後ろのようなC#を知っています。私の.csファイルの名前を.csxに変更するだけでPowerShellを学ぶのはなぜですか?これはpowershellスクリプトのように実行されます(下記の私の答えを参照)。 – Contango

+0

@ジョイドット、かっこなど;) – scottm

4

実行可能ファイルにコンパイルしてから、この実行可能ファイルを実行する必要があります。

これを達成するためにバッチファイルを作成できますか?より深刻なノートで


、(私は+に応じ1edました)scottmの答えで述べたように、代替としてPowerShellのを見てみましょうください。

+3

トロロロール。 – Polynomial

+0

これを実行可能ファイルにコンパイルするのは、いくつかの行を含む.csファイルのためのちょっとした不具合です.DOSバッチファイルは非常に制限されていて、PowerShellはまったく新しい言語を学習する必要があります。 – Contango

+0

.NETは、C#のような高水準言語で記述するときは、翻訳されたプラットフォームではありません。彼らはCLR上で動作するようにILにコンパイルする必要があります。したがって、コンパイルは「過剰な」ものではなく、必要なステップです。そして実行可能なもの、つまり実行可能なものにコンパイルする必要があります。 Microsoft Roslynの発見は面白いです... –

0

コマンドプロンプトでプログラムをコンパイルする方法を見てみることができます。このテクニックを使用すると、.csファイルをフィードし、.exeをコンパイルしてから、.exeを実行できます。

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

しかし、これは少し面倒になりますように思えます。 Visual Studioを起動してコマンドラインプロジェクトでコードを実際に素早く入力するだけで何が問題になっていますか?

+0

私はそれを自動化するバッチスクリプトを書くことができると思います! :) – Polynomial

1

Microsoft Roslyn

など、単にバッチファイル、PowerShellの、Pythonのように、コマンドラインからC#ファイルを実行することができます

ステップ1:はロスリンをインストールし、新しいコンソールアプリケーションを作成し、以下を使用します

scriptEngine.ExecuteFile("DemoClass.cs"); 

または

scriptEngine.ExecuteFile("DemoScript.csx"); 

:スクリプトを実行するためのラインステップ2: ".csx"ファイルをコンパイルしたコンソールアプリケーションに関連付け、ビジュアルスタジオプロジェクトにコンパイルされたかのように実行します。

私の人生でDOSバッチファイルを書く必要はありません。

更新

0
$Source = (gc csharpfilename.cs|Out-String) 
    #compile Csharp 
    Add-Type -TypeDefinition $Source -Language CSharp 

    #Call you function like this 
    [namespaceName.className]::functionName("Parameters/Arguments") 
関連する問題