2015-04-01 696 views
0

我想檢查是否在PC中設置了某個環境變量。如果是,那麼做x,如果不是y。if語句環境變量是否存在/不存在批處理文件

我想他們的這些以及一些變化:

IF EXISTS%SIGN%runtest.exe --redirect -1%NAME% ELSE runtest.exe -1%NAME%

如果「% SIGN%」 == 「」 runtest.exe --redirect -1%NAME% ELSE runtest.exe -1%NAME%

他們沒有在這兩種情況下正常工作(當環境變量SIGN存在,並且當它不存在)。有時僅在一種情況下...

請你幫忙嗎? 謝謝!

+1

'if exists'檢查文件。爲變量做:'如果定義的符號'(沒有百分號 - – Stephan 2015-04-01 12:17:55

+0

@Stephan - 讓這個答案。 – npocmaka 2015-04-01 12:25:56

回答

0

IFConditionally perform a command

IF DEFINED SIGN (
    runtest.exe --redirect -l %NAME% 
) ELSE (
    runtest.exe -l %NAME% 
) 

或不久

IF DEFINED SIGN (runtest.exe --redirect -l %NAME%) ELSE (runtest.exe -l %NAME%) 

有效語法:

  • 所有)ELSE(必須是一個只有一行,如下所示:

注意

if DEFINED將返回true,如果變量包含任何值(即使值只是空間)。

根據上述謂詞,IF DEFINED SIGN條件似乎是等效於重新測試if NOT "%SIGN%"==""但它在批次僅,是有效其中%undefined_variable%結果爲空字符串:

if NOT "%SIGN%"=="" (runtest.exe --redirect -l %NAME%) ELSE (runtest.exe -l %NAME%) 

否則,在純CLI,%undefined_variable%結果%undefined_variable%

證明

==>type uv.bat 
@echo undefined_variable="%undefined_variable%" 

==>uv.bat 
undefined_variable="" 

==>echo undefined_variable="%undefined_variable%" 
undefined_variable="%undefined_variable%" 

==> 
1

if exists檢查文件。

對於變量做:if defined sign(不百分號標誌)