2014-05-08 12 views

Odpowiedz

10

jest używany dla właściwej składni. Wyobraź sobie, że chcesz sprawdzić, czy zmienna jest pusta:

if %var%== echo bla 

oczywiście zawiedzie. (Zła składnia)

Zamiast:

if "%var%"=="" echo bla 

działa dobrze.

Kolejny „złe”: chcesz sprawdzić zmienną, ale może być puste:

if %var%==bla echo bla 

działa dobrze, jeśli% var% nie jest pusta. Ale jeśli to jest pusty, linia będzie interpretowane jako:

if ==bla echo bla 

oczywiście problem składni. Ale

if "%var%"=="bla" echo bla 

byłyby interpretowane jako

if ""=="bla" echo bla 

poprawnej składni.

Zamiast " można użyć innych znaków. Niektórzy lubią [%var%] niektóre użycie ! lub . Niektórzy używają tylko jeden char zamiast otaczający ciąg jak if %var%.==. Najczęstszym otacza z " (bo nie zawiedzie, jeśli var zawiera niecytowany trucizny charakter jak &.) *), ale to zależy od osobistego podmuchu.

*) Dzięki dbenham, jest to bardzo ważna informacja

+0

Więc cytaty „” i [] można stosować zamiennie dla celów pustych varaibles? Nie ma różnicy? Pomyślałem, że być może jest jakaś zaleta używania [] w porównaniu do "" – Jim

+6

@Jim - Nie ma żadnej korzyści z używania '[% var%] == [value]'. Będzie działał równie dobrze jak ']% var% [==] value [' lub 'XXX% var% == XXXvalue'. Używanie "% var%" == "value" jest zaletą, ponieważ nie zawiedzie, jeśli var zawiera niecytowaną postać trucizny, np. &. – dbenham

+0

@dbenham - jednak * zawiedzie *, jeśli 'var' zawiera niecytowany znak trucizny, taki jak' '' Rozważ 'SET var =" foo bar "', który staje się 'if" "foo bar" "==" " '; które prawdopodobnie nagrodzi Cię' bar "= "=" "było nieoczekiwane w tej chwili." ... – jimbobmcgee

3

nawiasach kwadratowych są potrzebne, aby sprawdzić, półwyrobów, ponieważ jeśli używasz:

if %1==[] (
echo no parameter entered 
) else (
echo param1 is %1 
) 

Bez nawiasów kwadratowych otaczających zmiennej, to znaczy

(jest nieoczekiwane w tej chwili

i wyjść.

Powiązane problemy