C#スクリプトの実行方法とは?PowerShellやVisualStudio Code、Visual StudioからC#スクリプトを実行する方法
- システム
エンジニア - C#をスクリプト言語のように実行したいのですが、どうすればいいのですか。
- プロジェクト
マネージャー - PowerShellやVisualStudio Code、Visual StudioからC#スクリプトを実行することができます。
C#スクリプトの実行方法とは?
今回は、C#スクリプトの実行方法について説明します。PowerShellやVisual Studio Code、Visual Studioからスクリプト実行する方法を紹介します。Visual Studio CodeやVisual Studioは事前にインストールしておいてください。
C#スクリプトの実行方法に興味のある方はぜひご覧ください。
事前準備
PowerShellを起動して、「dotnet script」を実行します。dotnet-scriptをインストールしていない場合は、以下のようなエラーが表示されます。
1
2
3
4
5
6
7
|
PS C:\> dotnet script
指定されたコマンドまたはファイルが見つからなかったため、実行できませんでした。
次のような原因が考えられます:
* 組み込みの dotnet コマンドのスペルが間違っている。
* .NET Core プログラムを実行しようとしたが、dotnet-script が存在しない。
* グローバル ツールを実行しようとしたが、プレフィックスとして dotnet が付いたこの名前の実行可能ファイルが PATH に見つからなかった。
PS C:\>
|
以下のコマンドで「dotnet-script」をインストールします。
1
2
3
4
|
PS C:\> dotnet tool install -g dotnet-script
次のコマンドを使用してツールを呼び出せます。dotnet-script
ツール 'dotnet-script' (バージョン '1.0.1') が正常にインストールされました。
PS C:\>
|
再度「dotnet script」コマンドを実行すると、C#スクリプトを実行できるようになります。
1
2
|
PS C:\> dotnet script
>
|
PowerShell
PowerShellからC#スクリプトを実行する方法を紹介します。例えば、標準出力は以下のように1行だけ記述します。
1
2
|
> Console.WriteLine("Hello, C#");
Hello, C#
|
メッセージだけなら、以下のようにも実行できます。
1
2
|
> "Hello, C#"
"Hello, C#"
|
Listを表示してみます。
1
2
3
4
|
> var mylist = new List<string>(){ "red", "green", "blue" };
> mylist
List<string>(3) { "red", "green", "blue" }
>
|
Dictionaryを表示してみます。
1
2
3
4
5
6
|
> var mydict = new Dictionary<string, string>();
> mydict.Add("key1", "value1");
> mydict.Add("key2", "value2");
> mydict
Dictionary<string, string>(2) { { "key1", "value1" }, { "key2", "value2" } }
>
|
現在時刻を表示してみます。
1
2
|
> DateTime.Now
[2021/03/26 20:51:27]
|
Visual Studio Code
Visual Studio CodeからC#スクリプトを実行する方法を紹介します。Visual Studio Codeは事前にインストールしておいてください。まずは、PowerShellから任意のcsxファイルを作成し、codeコマンドでVisual Studio Codeで起動します。
1
2
3
4
5
6
7
8
9
10
11
12
|
PS C:\prog\cs\script> New-Item main.csx
ディレクトリ: C:\prog\cs\script
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021/03/26 21:26 0 main.csx
PS C:\prog\cs\script> code ./main.csx
|
Visual Studio Codeが起動しますので、main.csxを以下のように編集します。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Console.WriteLine("Hello, C#");
// List
var mylist = new List<string>(){ "red", "green", "blue" };
Console.WriteLine("{0}", string.Join(",", mylist));
// Dict
var mydict = new Dictionary<string, string>();
mydict.Add("key1", "value1");
mydict.Add("key2", "value2");
foreach(KeyValuePair<string, string> item in mydict) {
Console.WriteLine("key:{0}, value:{1}", item.Key, item.Value);
}
|
PowerShellからスクリプトを実行します。
1
2
3
4
5
6
|
PS C:\prog\cs\script> dotnet script ./main.csx
Hello, C#
red,green,blue
key:key1, value:value1
key:key2, value:value2
PS C:\prog\cs\script>
|
このようにVisual Studio CodeからC#スクリプトを実行できます。
Visual Studio
Visual StudioからC#スクリプトを実行する方法を紹介します。
Visual Studioは事前にインストールしておいてください。ここではVisual Studio Community 2019 Previewを使用します。
Visual Studioの表示(V) → その他ウィンドウ(E) → C# インタラクティブ を選択すると、C#インタラクティブウィンドウが開きます。
1
2
3
4
|
Microsoft (R) Visual C# Interactive Compiler version 3.7.0-4.20359.1 ()
Loading context from 'CSharpInteractive.rsp'.
Type "#help" for more information.
>
|
#helpでヘルプが表示されます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
> #help
キーボード ショートカット:
Enter 現在の送信が完了している場合は、評価します。完了していない場合には、新しい行を挿入します。
Ctrl-Enter 現在の送信内で、現在の送信を評価します。
前の送信内で、前の送信を現在の送信に追加します。
Shift-Enter 新しい行を挿入します。
Escape 現在の送信をクリアします。
Alt-UpArrow 現在の送信を前の送信に置き換えます。
Alt-DownArrow 現在の送信を次の送信に置き換えます (前に戻っている場合)。
Ctrl-Alt-UpArrow 現在の送信を、同じテキストで始まる前の送信に置き換えます。
Ctrl-Alt-DownArrow 現在の送信を、同じテキストで始まる次の送信に置き換えます (前に戻っている場合)。
Ctrl-K, Ctrl-Enter 対話型バッファーの最後に選択内容を貼り付け、キャレットを入力の末尾に付けます。
Ctrl-E, Ctrl-Enter 対話型バッファー内の保留中の入力の前に、選択内容を貼り付けて実行します。
Ctrl-A 最初に押すと、カーソルの置かれた送信が選択されます。もう一度押すと、ウィンドウ内のすべてのテキストが選択されます。
REPL コマンド:
#cls, #clear 編集ウィンドウの内容をクリアし、履歴と実行コンテキストはそのまま保持します。
#help 指定のコマンド、または指定していない場合には利用可能なすべてのコマンドとキー バイデンィングに関する、ヘルプを表示します。
#reset 実行環境を初期状態にリセットし、履歴を保持します。
スクリプト ディレクティブ:
#r 指定されたアセンブリとそのすべての依存関係へのメタデータ参照を追加します (例: #r "myLib.dll")。
#load 指定されたスクリプト ファイルを読み込んで実行します (例: #load "myScript.csx")。
>
|
以下のようにC#スクリプトを実行できます。
1
2
3
4
5
6
7
8
|
> Console.WriteLine("Hello, C#");
Hello, C#
> "Hello, C#"
"Hello, C#"
> var mylist = new List<string>() { "red", "green", "blue" };
> mylist
List<string>(3) { "red", "green", "blue" }
>
|
また、C#スクリプトファイルを実行することもできます。
1
2
3
4
5
6
|
> #load "C:\prog\cs\script\main.csx"
Hello, World!!
red,green,blue
key:key1, value:value1
key:key2, value:value2
>
|
- システム
エンジニア - PowerShellやVisualStudio Code、Visual Studioからだと、C#をスクリプト言語のように実行できるのですね。
- プロジェクト
マネージャー - その通りです。ぜひ試してみてください。
まとめ
いかがでしたでしょうか。PowerShellやVisual Studio Code、Visual StudioからC#スクリプトを実行する方法を紹介しました。スクリプト実行することで、途中経過を簡単に確認できるようになります。
ぜひご自身でソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
C#新着案件New Job
-
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(新宿駅) -
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(新宿駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円神奈川県横浜市(桜木町駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円神奈川県横浜市(桜木町駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(西新宿駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(西新宿駅)