6. 実行形式ファイル

<前章までの状態>
D:ドライブに test ディレクトリがあります。
D:\test ディレクトリの中
ディレクトリ renshu
テキストファイル test.txt, test2.txt
D:\test\renshu ディレクトリの中
テキストファイル test3.txt
|
D:\test
├ renshu
| └ test3.txt
├ test.txt
└ test2.txt
|
6−1 EXEファイル・COMファイル
Windows上で実行されるソフトウェアは、ディスクドライブからメモリに読み込まれて
起動しますが、ドライブ上にある時は、拡張子 .exe または .com
を持ったファイルとして存在しています。それらのソフトウェアは通常、
- スタートメニューからメニューをたどっていって実行
- ウィンドウのアイコン(またはショートカット)をダブルクリックして実行
というような方法で起動するのですが、DOS窓のプロンプトに対して「ファイル名
から拡張子 .exe を除いたもの」を入力して することでも
起動できます。
前章まででも少しやりましたが、DOS窓から「メモ帳」「電卓」を起動します。
D:\>notepad ← メモ帳を起動しました
D:\>calc ← 電卓を起動しました
D:\>
|
上記の指定で「メモ帳」を実行すると、新規ファイル編集の状態で起動します。
既存のファイルを「メモ帳」で開くには、コマンドの引数
として、次のように対象ファイル名を指定してやります。
D:\>notepad d:\test\test.txt
|
DOSプロンプトに対してキー入力して実行するという意味では、 DIR コマンドや
COPY コマンドを実行するのと非常に似ています。
実は、DOS窓の世界では、実行形式ファイルとしての実体がない DIR や
COPY などを「内部コマンド」、
実行形式ファイルを「外部コマンド」と呼んで、ほとんど同じように扱います。

Windowsによってあらかじめ用意されているDOS窓用の小さな外部コマンドは
たくさんありますが、以下に主なものを挙げておきます。
各コマンドの説明を詳細に知りたい場合は、 HELP コマンド名 を
実行する(WinNT系のみ)か、各コマンドに /? オプション
を与えて起動して下さい。
ATTRIB (exe) ファイルの属性を変更します。
CHKDSK (exe) ディスクエラーをチェックします。
DISKCOPY (com) フロッピーディスクを丸ごとコピーします。
EXPAND (exe) 圧縮された.cabファイルを展開します。(→14-3)
FC (exe) 2つのファイルの内容を比較します。
FIND (exe) テキストから文字列を検索します。(→9-1)
FORMAT (com) ディスクドライブをフォーマットします。
SORT (exe) テキスト行を並べ替えます。(→9-1)
TREE (com) ディレクトリの構造をツリー表示します。
XCOPY (exe) ファイルをツリー構造ごと一括コピーします。
|
6−2 パスを通す ( PATH )
DOS窓でファイル操作をする場合、カレントディレクトリにあるファイルかどうか
が常に問題となります(暗黙の処理対象であるかどうかという事だから)。
それは実行形式ファイルでも同じことです。
Microsoft Excel、「メモ帳」、「電卓」の実体は、多くの場合、
Microsoft Excel
・C:\Program Files\Microsoft Office\Office\excel.exe
メモ帳
・C:\WINDOWS\NOTEPAD.EXE (Windows98/XP)
・C:\WINNT\NOTEPAD.EXE (Windows2000)
電卓
・C:\WINDOWS\CALC.EXE (Windows98/XP)
・C:\WINNT\SYSTEM32\CALC.EXE (Windows2000)
にあります。下記を試してみて下さい。Excel のパス名はところどころ半角スペースを
含むので、全体を " " で囲んでやる必要があります。
D:\>excel
'excel' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。
D:\>"c:\program files\microsoft office\office\excel"
←エラーなくExcelが起動しています
D:\> ←Excelを終了しました
|
上記のExcelの例は、本来は「カレントディレクトリにある実行形式ファイルか、
ドライブ名から始まるフルパス名の実行形式ファイルしか実行できない」ことを
示しています。しかし、「メモ帳」「電卓」は、実体が格納されたディレクトリが
カレントディレクトリでなくても、つまりどこからでも起動します。
D:\>calc
←エラーなく電卓が起動します
D:\>
|
これは、一部のディレクトリにプログラムの検索パス(サーチパス)
が設定されているからです。
検索パスに登録されたディレクトリに置かれた EXEファイルは、
ファイル名より前のパス名部分を省略しても起動するようになっています。
下の例では、一太郎(Version11)をDOS窓から起動しています。
PATH (現在の検索パスを確認)
PATH = 検索パス文字列 (検索パスを設定する)
PATH = %PATH%;検索パス文字列 (検索パスを追加する)
D:\>taro11
'taro11' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。
D:\>path
PATH=C:\JUST\JSLIB32;C:\Perl\bin\;C:\windows\system32;C:\windows
↑ 現在の検索パス一覧
D:\>path=%path%;c:\just\taro11
← 検索パスを追加しました
D:\>taro11
← 一太郎がエラーなく起動しました
D:\>
|
DOS窓の PATH コマンドで設定し直した検索パスは、DOS窓を閉じると同時に
破棄されます。一番最初に設定されている検索パスを変更するには、
Windows2000/XP:「システムのプロパティ」→「詳細タブ」→[環境変数] を変更
Windows9x:AUTOEXEC.BAT の中の PATH= の記述を書き換える
といった処理が必要です。
外部コマンド APPEND を使う方法もあります。
APPEND 検索パス文字列 (検索パスを追加する)
D:\>append c:\just\taro11
|
6−3 あぶないコマンド
世の中には人が困るのを喜ぶひどい人がいます。
パソコン初心者の人がネット上で質問をするのに対して嘘のアドバイスをして、
その人のパソコンをめちゃくちゃにする人もいます。
DOS窓の知識があれば、そうした人のひどい意地悪も見破れます。
◆ Windows9x ◆
|
「MS-DOSプロンプト」を開いて、
C:\WINDOWS>DELTREE /Y C:\
を実行するといいよ。
|
◆ Windows2000 ◆
|
「コマンド プロンプト」を開いて、
C:\>DEL /S /Q *
を実行するといいよ。
|
実行すると、C:ドライブの中のすべてのファイルが確認なしに削除されて
しまいます。Windowsとほとんどすべてのアプリケーションをゼロから
再インストールするしかありません。
DOS窓を開いて、
C:\>ECHO Y|FORMAT C:
を実行してみてよ。
|
FORMAT は、ディスク初期化用の外部コマンドです。
実行すると、ハードディスクのC:ドライブがフォーマットされてしまいます。
前の例ではディレクトリのツリー構造だけは残るのですが(もちろんそんなのが
残っていても無意味ですが)、こちらの場合は、本当にきれいさっぱり整地されてしまいます。
FORMAT C: だけなら、確認のメッセージが出てその時点で騙されたことに気づくのですが、
ECHO Y| があるため、自動的に「はい」を選択する処理が行われてしまい、
あとはノンストップでハードディスクの初期化が進みます。
そうなると、Windows とほとんどすべてのアプリケーションを、
ゼロから再インストールするしかありません。
|