[前の記事]« CSVファイルの内容の1行目だけを削除するには?
[次の記事]if文で比較可能な数値桁数を越える場合の処理 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「SET, PATH, %環境変数%」索引へ

NT系と95系のSETコマンドの仕様の違い


562) 環境変数の設定について FLASH 2002/08/20(火) 18:00


突然失礼します。掲示板の過去ログの方をみてもよくわからないかったので、投稿します。
PATHを設定するときにSETコマンドをAutoexec.batに書き込むときにちょっとした問題がおこりました。
自分のマシンはNTで、
下記の設定にて上手くいきました。
SET PATH = %path%;C:\PROGRA~1\xxxx\bin;

ですが、他の方(windows98)のかたに上記の
set文を書いていただいたところ上手く認識されませんでした。
SET PATH=%PATH%;C:\PROGRA~1\xxxx\bin;
と変更したら上手くいきました。
NTと98のdosのバージョンにてset文のシンタックスが違うことなどあるのでしょうか?

563) Re:環境変数の設定について SYSOP 2002/08/20(火) 19:47


FLASHさん こんにちは。

>SET PATH = %path%;C:\PROGRA~1\xxxx\bin;
>SET PATH=%PATH%;C:\PROGRA~1\xxxx\bin;

>NTと98のdosのバージョンにてset文のシンタックスが違うことなどあるのでしょうか?

 前者では = の前後に空白が入っていますね。

 スペース入れてよかったんだっけ……と、念のためWindows98とWindows2000でSET /?のヘルプメッセージを見てみましたが、どちらでもSETコマンド中の "=" の前後に空白を入れる書き方は紹介されていませんでした。

 いいかえると、"PATH=XXXXX"は、それ全体がSETコマンドに渡すべき「ひとまとまりのパラメータ」である、という考え方になっていることになります。

 ですから、その途中に(本来パラメータ間の区切り文字である)空白を入れてしまうと、「1つのパラメータしか受け付けないSETコマンドに対して "PATH" "=" "xxxx;xxx;" のような複数のパラメータが渡された」ことになって、DOS/95/98/Me系ではエラーになってしまうというわけです。

 一方、NT系で問題が起きないのは、(想像ですが)「空白文字を含むパス指定を許容する仕様であること」と関係しているのではないかと思われます。

 いずれにせよ、「仕様外の指定に対する挙動」の話になってしまうし、同じWindowsとはいえもともとの出自が異なるOS間ですので、このぐらいの違 いはあってもしょうがないように思えます。実際、SET PATH=%PATH%;C:\PROGRA~1\xxxx\bin; のように空白をまぜずに書くぶんには、どちらでも問題はないわけですし。

 もう1点、前者は%path%が小文字、後者は%PATH%と大文字で記述されていますが、これがエラーの原因になることはないと思います。

YanaKen



565) Re2:環境変数の設定について FLASH 2002/08/21(水) 11:30


>YanaKenさん
お初にお目にかかります。
懇切丁寧な回答ありがとうございました。
現象の件ですが、理解できました。
95系とNT系では、微妙な違いがあるのですね。
でもどちらでも動く文法で記載することのほうが大事ですね。

> もう1点、前者は%path%が小文字、後者は%PATH%と大文字で記述されていますが、これがエラーの原因になることはないと思います。

これについては、後程小文字と大文字両方で確認したところ両方とも動きました。関係しないことがわかりました。

 
 


カテゴリー「SET, PATH, %環境変数%」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2002年08月20日 19:33に投稿されたエントリーのページです。

ひとつ前の投稿は「CSVファイルの内容の1行目だけを削除するには?」です。

次の投稿は「if文で比較可能な数値桁数を越える場合の処理」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート