2005年10月22日

実行ファイルの呼び出し方、引数の渡し方

今回は 「実行ファイルの呼び出し方」
「引数の渡し方」についてお話します。

今まで、何度も 「メモ帳」 を起動してきましたよね。
notepad.exe という実行ファイルなので

nodepad

と入力してきました。じゃぁ、office の 「ワード」 は?
(office 入れてない人ゴメンなさい。他の実行ファイルで試して見てください)
実行ファイルは winword.exe だから・・・ winword では??

入力してみましょう。 起動しませんよね (たぶん・・・)

では、まず、どこにあるか 「スタート」→「検索」 で探してください。

私の場合には、winword.exe は

C:¥Program Files¥Microsoft Office¥Office¥WINWORD.EXE

にありました。最初のころ、チョッと触れただけなので
忘れているとは思いますが、「パスの通った」 状態なら OK だ
という話をしました。

んん? パスの通った・・・??

となっていたことでしょう ^^; 知らなきゃ意味不明ですよねぇ。


では、echo %systemroot% および echo %path% と打ち込んで見てください。

systemroot → C:¥WINNT
path → C:¥WINNT¥system32;C:¥WINNT;
          C:¥WINNT¥system32¥Wbem


私の環境では、このように出てきました。
それぞれの環境で、多少違いがありますが、問題ありません。

Windows では、完全パスで指定されていない場合、
まず、カレントホルダを探します。そこで見つからなかった時に、
Windows が探しに行くホルダを定義したものです。

notepad.exe は %systemroot%¥system32 に保存されています。
Windows が探しに行ってくれるホルダにあるので、
どこからでも起動することが出来るのです。

逆に、WINWORD.EXE のあるホルダには探しに行ってくれません。
カレントホルダ になっていなければ WINWORD だけでは起動できないのです。


では、完全パスで入力してみましょう。起動できますか?


あれぇ〜? 'C:¥Program' は・・・??

起動できねーぞー  ゛(`ヘ´#)

失敬・・・^^; 罠にハマッて頂きました。
パス名にスペースがありますよね。これがイタズラ坊主なのです。

実行ファイルに引数を渡すときには、スペースで区切るため、
'C:¥Program' だけがコマンドとして認識され、スペースを挟んで
それ以降は、引数として扱われてしまったためです。

なので、ここまでが ヒトまとまりだよ ってことを、
教えてあげなければいけません。" (2重引用符) を使います。
先頭と末尾にコレを付けて上げてください。

"C:¥Program Files¥Microsoft Office
                ¥Office¥WINWORD.EXE"


今度は起動できましたよね。

そして、引数として文字列を渡すときも同じです。
cd コマンドで移動するとなどがこれにあたります。
cd C:¥Program Files では失敗します。cd "C:¥Program Files" ですよ!

実行ファイルに渡すときも同様に考えてくださいね。
例えば、メモ帳に 「ワード2000」 のリリースノートを渡すには

notepad "C:¥Program Files\Microsoft Office
                ¥Office¥WDREAD9.TXT"


になりますからね。



なんだかんだで、また結構長くなってしまいました ^^;

次回は 「バッチファイルでの引数の受け取り方」 を予定してます。




あっ、そうそう、私も最近判ったんですが、「コマンドプロンプト」って
ドロップターゲット になっているんですね。ファイルを掴んで
画面上を通過したら、+ マークが出現しました。
ドロップしてみたら、現在のカーソル位置に完全パスが・・・

ん〜〜、なんとも中途半端な機能のように思えるのだが・・・
極めて長〜〜いパスを入力するには便利なのかな。

あっ、必要なときには、チャンと2重引用符で囲んであるから
参考にするといいよ。 えっ?

「先に教えろ!このヤロウ〜〜!!」 って??

ゴッ、ゴメン ^^;




応援ポチ  お願いしま〜す。

posted by Woody at 01:38 | 静岡 ☁ | Comment(0) | TrackBack(0) | コマンドプロンプト
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。