北アラバ公国

UNIX、RDBMS、NETWORK等、IT、情報通信に関する話題と技術メモ。

コマンドプロンプトでの拡張子によるファイル実行順位

Windowsコマンドプロンプトにおいて、あるディレクトリの中に実行形式のファイルが4個ありました。
C:\>cd \temp

C:\temp>dir
ドライブ C のボリューム ラベルは DISK-1-1 です
ボリューム シリアル番号は 7777-7777 です

C:\temp のディレクトリ

2008/05/27 23:55 <DIR> .
2008/05/27 23:55 <DIR> ..
2008/05/27 23:55 125 test1.bat
2008/05/27 23:55 125 test1.com
2008/05/27 23:55 125 test1.cmd
2008/05/27 23:55 125 test1.exe

1 個のファイル 500 バイト
2 個のディレクトリ 4,622,020,608 バイトの空き領域

C:\temp>
コマンドプロンプトにおいて実行形式のファイルを実行する時には、
C:\temp>test1.exe
拡張子まで指定する場合と、
C:\temp>test1
拡張子を省略して指定する場合があります。実行するファイル名を拡張子まで指定する場合は問題無いと思います。しかし、上記のようにファイル名は全て同じ「test1」でありながら拡張子がそれぞれ違う場合、
C:\temp>test1
と指定したらどの実行ファイルが実行されると思いますか? 実は実行形式のファイルは拡張子によって実行順位が決められております。この拡張子による実行順位環境変数PATHEXT」によって設定されております。
C:\temp>set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

C:\temp>
ありました。これを見ると、拡張子による実行順位は「.com」が最優先で実行されるようになっております。ですから、
C:\temp>test1
と指定すると、数ある同名の実行ファイルの中から拡張子が「.com」である「test1.com」が実行されます。もし「test1.com」が存在しなければ「test1.exe」、「test1.exe」が無ければ「test1.bat」、「test1.bat」が無ければ「test1.cmd」が実行されるようになっております。

なお、この拡張子による実行順位環境変数として設定されているので、簡単に変更することが出来ます。
C:\temp>set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

C:\temp>set pathext=.BAT;.CMD;.EXE;.COM;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

C:\temp>set pathext
PATHEXT=.BAT;.CMD;.EXE;.COM;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

C:\temp>
でもこれは一時的な変更ですので、恒久的な変更は「スタートボタン」→「設定」→「コントロールパネル」→「システム」→「詳細タブ」→「環境変数」にて行いましょう。

テーマ:コマンドプロンプト - ジャンル:コンピュータ

  1. 2008/05/29(木) 01:59:15|
  2. コマンドプロンプト
  3. | トラックバック:0
  4. | コメント:0
<<コマンドプロンプトでディレクトリをドライブに割り当て! | ホーム | コマンドプロンプトをコマンドで起動>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://northaraba.blog17.fc2.com/tb.php/333-c4b3f459
この記事にトラックバックする(FC2ブログユーザー)