加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

批处理文件 – cmd / DOS批处理脚本中变量周围的方括号表示法

发布时间:2020-12-14 04:09:44 所属栏目:Windows 来源:网络整理
导读:我已经看到cmd批处理脚本使用方形符号来包围变量.例如: @echo offif [%1]==[] (echo no parameter entered) else (echo param1 is %1) 这样做的目的是什么? 它用于正确的语法.试想一下,如果变量是空的,你想检查一下: if %var%== echo bla 显然会失败. (语
我已经看到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包含像&amp ;.这样的无引号毒药字符,它不会失败)*),但这取决于个人的阵风.

*)感谢dbenham,这是一个非常重要的信息

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读