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

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

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

Re[2]: コマンドプロンプトからexeを実行できない


(過去ログ 177 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■101550 / inTopicNo.1)  コマンドプロンプトからexeを実行できない
  
□投稿者/ オイC (1回)-(2023/03/14(Tue) 17:40:01)

分類:[Windows 全般] 

OS: Windows10 21H2
コマンドプロンプトで、実行したいexeをフルパスで

"C:\Program Files (x86)\aaa\bbb\ccc\ddd\10.0\eee.exe"

と入力すると、パスは正しいのに

「内部コマンド、または外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません」

と出てしまいます。
追加情報としては以下の通りです。

・パスが正しいことは確認済み
・「Program Files」のような半角スペースを区切り文字として認識しないよう、
 パス全体は二重引用符で囲んでいる。
・先に「cd "C:\Program Files (x86)\aaa\bbb\ccc\ddd\10.0"」を行ってから
 実行ファイル名のみ「eee.exe」を入力すると、このexeは実行できる。

フルパスの途中の「aaa\bbb\ccc\ddd」の部分には特殊な文字が入っているわけではない
(せいぜい半角スペース)と思うのですが、何か考えられる原因はあるでしょうか?
引用返信 編集キー/
■101552 / inTopicNo.2)  Re[1]: コマンドプロンプトからexeを実行できない
□投稿者/ 魔界の仮面弁士 (3587回)-(2023/03/14(Tue) 17:50:11)
2023/03/14(Tue) 17:58:12 編集(投稿者)

No101550 (オイC さん) に返信
> ・先に「cd "C:\Program Files (x86)\aaa\bbb\ccc\ddd\10.0"」を行ってから
>  実行ファイル名のみ「eee.exe」を入力すると、このexeは実行できる。
/D オプションも入れておかないと、カレントドライブが C: 以外だった時に失敗するかと。

CD /D "C:\Program Files (x86)\aaa\bbb\ccc\ddd\10.0\"

もし、eee.exe が "App Paths" のレジストリ項目へ登録済みなら
「exe.exe」の代わりに「Start eee.exe」とする方法でも
回避できるかもしれません。
https://learn.microsoft.com/ja-jp/windows/win32/shell/app-registration


> ・先に「cd "C:\Program Files (x86)\aaa\bbb\ccc\ddd\10.0"」を行ってから
>  実行ファイル名のみ「eee.exe」を入力すると、このexeは実行できる。
eee.exe の内部処理で「カレント ディレクトリにあるファイル」(.DLL とか .ini とか)に
依存している箇所があるのではないでしょうか。

デスクトップに exe へのショートカットを 2 つ作成した上で、
それぞれの作業フォルダー欄を、
一方は「C:\Program Files (x86)\aaa\bbb\ccc\ddd\10.0」
他方は「D:\」などのまったく別のパスに変更した状態で、
それぞれの動作に差異が生じるかどうか、確認してみてはいかがでしょう。


もっと詳しく調査したいのあれば、プロセスモニターで追跡してみるとか。
https://learn.microsoft.com/ja-jp/sysinternals/downloads/procmon
引用返信 編集キー/
■101556 / inTopicNo.3)  Re[2]: コマンドプロンプトからexeを実行できない
□投稿者/ オイC (2回)-(2023/03/15(Wed) 09:57:17)
No101552 (魔界の仮面弁士 さん) に返信

ありがとうございます。

> /D オプションも入れておかないと、カレントドライブが C: 以外だった時に失敗するかと。

これは知りませんでした。勉強になります。

> eee.exe の内部処理で「カレント ディレクトリにあるファイル」(.DLL とか .ini とか)に
> 依存している箇所があるのではないでしょうか。

確かに同じフォルダ―内にDLLがあります。
これは確認してみたいと思うのですが、実は、別のPCで、コマンドプロンプト上で
"C:\Program Files (x86)\aaa\bbb\ccc\ddd\10.0\eee.exe"と入力すると
ちゃんと実行できるものがありました。
その違いが分からなくって...

> もっと詳しく調査したいのあれば、プロセスモニターで追跡してみるとか。
> https://learn.microsoft.com/ja-jp/sysinternals/downloads/procmon

これは勉強してみたいと思います。
また何か分かったことがあれば報告します。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -