ワンクリックで
scripting-guide
このリポジトリでは、スクリプト実行は全て C# で行います。Python や PowerShell などのスクリプト言語は使用しません。C# を使って、ファイルを作らずにデータ処理を行う方法を提供します。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
このリポジトリでは、スクリプト実行は全て C# で行います。Python や PowerShell などのスクリプト言語は使用しません。C# を使って、ファイルを作らずにデータ処理を行う方法を提供します。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | scripting-guide |
| description | このリポジトリでは、スクリプト実行は全て C# で行います。Python や PowerShell などのスクリプト言語は使用しません。C# を使って、ファイルを作らずにデータ処理を行う方法を提供します。 |
このスキルは、C# file-based apps を使ってファイルを作らずにデータ処理を行う方法を提供します。
適用バージョン: .NET 10 SDK 以降(C# 14 以降)
コードは 必ずパイプで dotnet run - に渡して実行 してください。
Set-Content や Out-File 等で .cs ファイルを新規作成してから実行する方法は 禁止 です。
優先順位:
dotnet run - に直接パイプして実行する.cs ファイルを dotnet <file>.cs で実行する#:package ディレクティブが必要な場合も、パイプ実行で対応できます(後述の「外部ライブラリを使う場合」を参照)。
PowerShell:
'Console.WriteLine("Hello!");' | dotnet run -
Bash:
echo 'Console.WriteLine("Hello!");' | dotnet run -
PowerShell:
@'
var sum = Enumerable.Range(1, 100).Sum();
Console.WriteLine($"合計: {sum}");
'@ | dotnet run -
Bash:
dotnet run - << 'EOF'
var sum = Enumerable.Range(1, 100).Sum();
Console.WriteLine($"合計: {sum}");
EOF
以下は using 不要で使えます:
System, System.IO, System.Collections.Generic, System.Linq, System.Net.Http, System.Threading, System.Threading.Tasksjson.cs:
using System.Text.Json;
var json = Console.In.ReadToEnd();
var doc = JsonDocument.Parse(json);
Console.WriteLine(doc.RootElement.GetProperty("name"));
実行:
'{"name":"太郎"}' | dotnet json.cs
#:package ディレクティブが必要な場合も、パイプで実行します。ファイルを作成しないでください。
@'
#:package CsvHelper
using CsvHelper;
using System.Globalization;
using var reader = new StreamReader(args[0]);
using var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
var count = csv.GetRecords<dynamic>().Count();
Console.WriteLine($"レコード数: {count}");
'@ | dotnet run - -- data.csv
@'
#:package ClosedXML
using ClosedXML.Excel;
using var workbook = new XLWorkbook(args[0]);
var worksheet = workbook.Worksheet(1);
foreach (var row in worksheet.RowsUsed())
{
Console.WriteLine(row.Cell(1).Value);
}
'@ | dotnet run - -- Employee.xlsx
| 用途 | ディレクティブ | 備考 |
|---|---|---|
| JSON処理 | (不要) | System.Text.Json が標準で利用可能 |
| CSV処理 | #:package CsvHelper | |
| Excel処理 | #:package ClosedXML |
var input = args.Length > 0
? File.ReadAllText(args[0])
: Console.In.ReadToEnd();
Console.WriteLine(input.ToUpper());
使い方:
# ファイルから
dotnet script.cs -- input.txt
# 標準入力から
Get-Content input.txt | dotnet script.cs
try
{
// 処理
}
catch (Exception ex)
{
Console.Error.WriteLine($"エラー: {ex.Message}");
return 1;
}