javaプログラムからの外部コマンド呼び出しは別の記事に掲載したのですが、C#でも同様に外部コマンド呼び出しが可能です。
今回の記事では、「画面から外部コマンドを呼び出し、外部コマンドで出力されたファイルを取り込む」という機能をWindows Fromで実現したサンプルプログラムを紹介します。
【サンプルプログラム】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { // プロセスを定義 Process p = new Process(); p.StartInfo.FileName = @"C:\tmp\HelloWorld.bat"; p.StartInfo.Arguments = ""; // プロセス実行 p.Start(); // プロセス終了待ち p.WaitForExit(); // 資源を開放 p.Close(); // 呼び出したバッチで生成されたファイルを読み込む using (StreamReader sr = new StreamReader( @"C:\tmp\a.txt", Encoding.GetEncoding("Shift_JIS"))) { label1.Text = sr.ReadLine(); } } } } |
【呼び出されるバッチ】
・C:\tmp\HelloWorld.bat
1 2 3 |
@echo off echo Hello World!> C:\tmp\a.txt exit 0 |
【実行結果】
↓
いかがでしたでしょうか。
プライベートでこのようなプログラムを作る機会があったので、記事として紹介してみました。
簡単な画面を作りたい時にC#のWindows Fromは便利で、今回紹介したような画面を実装すると社内ツールを作る時の表現の幅が広がったりします。
コメント