人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【急ぎです】
Windows XPのコマンドラインで、環境変数hogeの値が空(環境変数hogeがない)かどうかcmd.exeのifで調べたいのですが、お知恵を貸して下さい。
>if ""=="%hoge%" echo hogeは空です
…のようなことをしたい訳なのですが、空の環境変数hogeの展開結果は「%hoge%」になってしまう様子。
>set hoge=ABC
>echo %hoge%
ABC
>set hoge=
>echo %hoge%
%hoge%
↑あれれ?

●質問者: キチョー id:Kityo
●カテゴリ:コンピュータ
✍キーワード:ABC echo exe hoge SET
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tokuya_n
●300ポイント ベストアンサー

>echo %hoge%

%hoge%

になるということは、コマンドプロンプトに直接入力してる、のでしょうか?

IFなどの条件分岐はバッチファイルでしか使えないはずです。

バッチファイルであれば

if "" == "%hoge%" ( echo 空 ) else echo 空じゃない

で問題ないはずです。

◎質問者からの返答

回答ありがとうございます。

僕の質問文が舌足らずでしたか?

実際に僕の手元のWindows XPでは、「if ""=="%hoge%" echo hogeは空です」では問題があるのです。tokuya_nのお手元のWindows XP(のcmd.exe)ではWin9X(のcommand.com)と同じに振舞うのでしょうか?


…ところで「else」なんて使えるのかと思って「if /?」を試したら、「if [not] DEFINED 環境変数名」なんて構文を発見しました。

この構文なら気持ち良くコーディング出来そうです。

従って解決しました。僕が自力で解決したように見えるかも知れませんが、tokuya_nさんの回答があってこそ「if /?」を試したのです。

感謝致します。本当にありがとうございます。


※ifコマンド自体は、コマンドプロンプト直接入力でも使えますよ!?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ