我已经看到cmd批处理脚本使用方形符号来包围变量.例如:
@echo off if [%1]==[] ( echo no parameter entered ) else ( echo param1 is %1 )
这样做的目的是什么?
它用于正确的语法.试想一下,如果变量是空的,你想检查一下:
if %var%== echo bla
显然会失败. (语法错误)
代替:
if "%var%"=="" echo bla
工作良好.
另一个“坏事”:你想检查一个变量,但它可能是空的:
if %var%==bla echo bla
如果%var%不为空,则效果很好.但如果它是空的,那么该行将被解释为:
if ==bla echo bla
显然是一个语法问题.但
if "%var%"=="bla" echo bla
将被解释为
if ""=="bla" echo bla
正确的语法.
而不是“你可以使用其他字符.有些像[%var%],有些人使用!或者.
有些人只使用一个字符而不是围绕字符串,就像%var%.==一样.
最常见的是“(因为如果var包含像& ;.这样的无引号毒药字符,它不会失败)*),但这取决于个人的阵风.
*)感谢dbenham,这是一个非常重要的信息