[前の記事]« country コマンドのエラーメッセージの意味を教えてください
[次の記事]OSがインストールされているドライブレターを調べるには? »

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

▲カテゴリー「IF(結果の検査、条件分岐)」索引へ
▲カテゴリー「SET, PATH, %環境変数%」索引へ

環境変数の比較時、「文法が違います」のエラーが出てしまう

317) OSの判定について れしぴ 2002/05/20(月) 12:05


れそぴです。

バッチファイル中でOSの判定をしたいのですが、WIN9x系だとうまくいきません。

したいのは
「WinNT系の時だけ処理をしない」
という単純なものです。
試行したバッチファイルは

if %os%==Windows_NT goto fin
chkdsk c:
:fin
exit

です。
%OS%がNT系のみの環境変数になるためWin9x系では上記の文が

if ==Windows_NT goto fin

と実行されてしまうようで、文法が違いますと言われてしまいます。

何かいい方法ないでしょうか?

れしぴ

318) Re:OSの判定について:というか環境変数の参照について SYSOP 2002/05/20(月) 14:38


れしぴさん

>if %os%==Windows_NT goto fin

http://fpcu.on.coocan.jp/dosvcmd/batch.htm#if

 ……のページにも解説してありますが、if なんとか==かんとか の構文では、比較する左辺と右辺に同一の文字をあらかじめ加えておくのがセオリーになっています。

IF %OS%.==Windows_NT ....
IF "%OS%"=="Windows_NT".....
IF %OS%$==Windows_NT$ .....

 ……など、指定する文字はなんでも(というと語弊があるけれど)かまわないんですが、とにかくOSの判定に限らず、これをやっておかないと、ご質問のように %xxx% の内容がカラであった場合(その環境変数が定義されていなかった場合)に構文エラーになります。

YanaKen


321) Re2:OSの判定について:というか環境変数の参照について れしぴ 2002/05/20(月) 16:57


れしぴです。

>比較する左辺と右辺に同一の文字をあらかじめ加えておくのがセオリーになっています。

なるほどー。
左辺と右辺に何か意味不明な文字が付加されたものを見たことがあります。
いままでなんだろう?って思っていたのですがそういうことだったんですね。
自分でやってみないとわかんないですね。
ありがとうございました。

れしぴ
 
 


カテゴリー「IF(結果の検査、条件分岐)」索引へ
カテゴリー「SET, PATH, %環境変数%」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

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

ひとつ前の投稿は「country コマンドのエラーメッセージの意味を教えてください」です。

次の投稿は「OSがインストールされているドライブレターを調べるには?」です。

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

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