C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■103672 / )  C#から外部バッチファイルを実行させるときのエラー
□投稿者/ inak (1回)-(2025/05/14(Wed) 16:46:46)

分類:[C#] 

いつも参考にさせていただいております。

今回、C#でちょっと行き詰っている点があり、質問させてもらうことにしました。

Visual Studio 2022
.NET 8.0
C#
Windows11

C#アプリケーションから外部プログラム(バッチファイル)を実行させようとしていて、以下のように記述しています。

string exeBatchFile = AppDomain.CurrentDomain.BaseDirectory + @"run.bat";

ProcessStartInfo pInfo = new()
{
FileName = exeBatchFile,
CreateNoWindow = true,
UseShellExecute = true,
};

Process p = Process.Start(pInfo);
p.WaitForExit();

バッチファイルの中身はこんな感じです。

C:
cd C:\temp\test
cal_program.exe

Fortranで作成されたDOS版の古いプログラム "cal_program.exe" が存在しているフォルダーに移ってから実行させるようにしています。

このコードを実行すると「System.ComponentModel.Win32Exception」「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」というエラーが発生します。メッセージを見るとバッチファイルが別プロセスで使用中というメッセージみたいで、バッチファイルも中身の記述が消えてファイルサイズがゼロになってしまっています。

いろいろと試しているのですが、どうも原因がわかりません。何かヒントでもわかる方がおられましたら、ご教示ください。よろしくお願いします。
返信 編集キー/


管理者用

- Child Tree -