C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
掲示板トップ
C# と VB.NET のサンプル
新規作成
利用方法/規約
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
■103686
/ 2階層)
C#から外部バッチファイルを実行させるときのエラー
□投稿者/ PATIO
(15回)-(2025/05/23(Fri) 10:28:39)
■
No103673
(魔界の仮面弁士 さん) に返信
> ■
No103672
(inak さん) に返信
>> string exeBatchFile = AppDomain.CurrentDomain.BaseDirectory + @"run.bat";
> このパスが正しいことは確認済みでしょうか?
> (上記が、実行ファイルのフォルダーを指すとは限らないそうで)
>
https://dobon.net/vb/dotnet/vb6/apppath.html
>
>> C:
>> cd C:\temp\test
> CD /D C:\temp\test
> と 1 行にまとめることもできますね。
>
>> cal_program.exe
>>Fortranで作成されたDOS版の古いプログラム "cal_program.exe" が存在しているフォルダーに移ってから実行させるようにしています。
> 古いプログラムなら、32bit プロセスであることを前提にしていそうに思いますが、
> そのバッチファイルは、32bit プロセスと 64bit プロセスのどちらで実行させていますか?
> 環境変数「PROCESSOR_ARCHITECTURE」と「PROCESSOR_ARCHITEW6432」の値を確認してみてはいかがでしょう。
>
>>このコードを実行すると「System.ComponentModel.Win32Exception」「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」というエラーが発生します。
>>メッセージを見るとバッチファイルが別プロセスで使用中というメッセージみたいで、バッチファイルも中身の記述が消えてファイルサイズがゼロになってしまっています。
> UAC によるフォルダー仮想化の影響を受けていないでしょうか。
> C# アプリを管理者モードで実行した場合とそうでない場合とで、動作が変化しますか?
>
>>いろいろと試しているのですが、どうも原因がわかりません。
> Process Monitor でレジストリ / ファイルへのアクセス状況を追跡できないでしょうか。
編集キー/
編集
前の記事
(元になった記事)
次の記事
(この記事の返信)
←Re[1]: C#から外部バッチファイルを実行させるときのエラー
/魔界の仮面弁士
返信無し
上記関連ツリー
C#から外部バッチファイルを実行させるときのエラー
/ inak
(25/05/14(Wed) 16:46)
#103672
└
Re[1]: C#から外部バッチファイルを実行させるときのエラー
/ 魔界の仮面弁士
(25/05/14(Wed) 18:16)
#103673
├
C#から外部バッチファイルを実行させるときのエラー
/ PATIO
(25/05/23(Fri) 10:28)
#103686
←Now
└
Re[2]: C#から外部バッチファイルを実行させるときのエラー
/ PATIO
(25/05/23(Fri) 11:31)
#103688
└
Re[3]: C#から外部バッチファイルを実行させるときのエラー
/ PATIO
(25/05/26(Mon) 09:45)
#103693
上記ツリーを一括表示
/
上記ツリーをトピック表示
上記の記事へ返信
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
URL は自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
名前
(*必須)
E-Mail (任意)
Web サイト (任意)
投稿モード
通常モード
図表モード (ソースコードを貼る場合はこちらを使用)
本文
(質問の場合は、開発環境・使用言語のバージョンなどを最初に書いてください)
■No103686 (PATIO さん) に返信 > ■No103673 (魔界の仮面弁士 さん) に返信 >>■No103672 (inak さん) に返信 > >> string exeBatchFile = AppDomain.CurrentDomain.BaseDirectory + @"run.bat"; >>このパスが正しいことは確認済みでしょうか? >>(上記が、実行ファイルのフォルダーを指すとは限らないそうで) >>https://dobon.net/vb/dotnet/vb6/apppath.html >> > >> C: > >> cd C:\temp\test >>CD /D C:\temp\test >>と 1 行にまとめることもできますね。 >> > >> cal_program.exe > >>Fortranで作成されたDOS版の古いプログラム "cal_program.exe" が存在しているフォルダーに移ってから実行させるようにしています。 >>古いプログラムなら、32bit プロセスであることを前提にしていそうに思いますが、 >>そのバッチファイルは、32bit プロセスと 64bit プロセスのどちらで実行させていますか? >>環境変数「PROCESSOR_ARCHITECTURE」と「PROCESSOR_ARCHITEW6432」の値を確認してみてはいかがでしょう。 >> > >>このコードを実行すると「System.ComponentModel.Win32Exception」「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」というエラーが発生します。 > >>メッセージを見るとバッチファイルが別プロセスで使用中というメッセージみたいで、バッチファイルも中身の記述が消えてファイルサイズがゼロになってしまっています。 >>UAC によるフォルダー仮想化の影響を受けていないでしょうか。 >>C# アプリを管理者モードで実行した場合とそうでない場合とで、動作が変化しますか? >> > >>いろいろと試しているのですが、どうも原因がわかりません。 >>Process Monitor でレジストリ / ファイルへのアクセス状況を追跡できないでしょうか。
編集キー
自分の投稿を編集する時に必要です
(半角8文字以内)
解決済み
/
解決したらチェックしておきましょう。
プレビュー/
管理者用
-
Child Tree
-