
前々から不思議に思っていたWindowsの素朴な疑問です。
コマンドプロンプトに実行ファイル名を入れると、カレントフォルダ検索後、PATH環境変数のフォルダを順に検索し、最初に見つかった実行ファイルが起動されます。
ところが、CreateProcess API に実行ファイル名を与えると、PATH環境変数で検索する前に Windows や System32 フォルダが検索されます。
時々これが現場で事故の原因になることがあるのですが、
何故こんな違いがあるのでしょうか?
理由をご存知の方がおられましたらよろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
CreasteProcessAPI の プロセスの元ファイルの検索順序はPATH環境変数だけでは決まらないからです。
この回答への補足
お察しかもしれませんが、実は java.exe の話です。
JDK のは JDKの bin へ JRE は system32 へインストールされるので
コマンドプロンプト、ツールやサーバからの起動で結果が違うことが
しばしば(JDK VM 固有のオプションが無いとか)。
PATHを変更して治らず悩む人が多いんです。
No.1
- 回答日時:
%PATH%には,通常C:\WindowsやC:\Windows\System32が含まれます。
で,これらを削除したコマンドプロンプトでnotepadと入力すると,notepad.exeは起動しません。
つまり,コマンドプロンプトではカレントディレクトリと%PATH%のみが認識されます。
# STARTを使うと,CreateProcessの順序になります。
CreateProcessの検索順序は以下に書いてあります。
MSDN: CreateProcess Function (Windows)
http://msdn.microsoft.com/en-us/library/ms682425 …
優先順位1位はカレントディレクトリではなく,
> The directory from which the application loaded.
になります。
また,CMD.EXEの検索順序は,以下にあります。
TECHNET: Path
http://technet.microsoft.com/ja-jp/library/cc753 …
ここには,Windowsディレクトリ等の話はまったく出てきません。
コマンドプロンプトから,CreateProcessの順序を使いたい場合は,STARTコマンドを使えばよいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
stable diffusionのインストー...
-
エクセルのVBAについて とある...
-
ftpコマンドを実行すると「425 ...
-
コマンドプロンプトのエラーに...
-
win10の「フォト」で、「次へ」...
-
大量のフォルダからひとつのフ...
-
一括でフォルダと同じ名前にフ...
-
コマンドプロンプトの「%1」と...
-
「win11-23H2」を「win11-24H2...
-
.htaccess で読み込む .htpassw...
-
複数の既成インストーラを連係...
-
Windowsアプリケーションをメモ...
-
.txtではなく.logの方が良いの...
-
パソコンのフォルダー内のファ...
-
テキストファイルのタブをカン...
-
蔵衛門デジブックでダウンロー...
-
txtの中身を表示する方法教えて...
-
コマンドプロンプトで変数が数...
-
バッチでテキストファイルから...
-
ImgBurnでの書き込み時
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
EXCELをバッチコマンドで...
-
batファイルで立ち上げたaplを...
-
ExcelVBAにてアプリをタスクマ...
-
VB.NETでDOSコマンドの複数実行
-
stable diffusionのインストー...
-
UWSCについて
-
複数の処理の終了を待ちたい
-
64bitのwindowsサーバーで32bit...
-
バッチファイル アプリケーシ...
-
VBAからキャッシュを削除する方...
-
Visual basic6.0からショートカ...
-
c#でコマンドプロンプトを実行...
-
createprocessで起動させる別.e...
-
バッチファイルからftpを実行時...
-
DOS窓の非表示について
-
C#でMediaPlayerを立ち上げた後
-
コマンドプロンプトの窓の起動...
-
vbsのショートカット作成で、引...
-
gccがコマンドプロンプト上で使...
おすすめ情報