记录一个使用 batch 脚本时遇到的有趣发现

在批处理脚本中,设置环境变量时若等号两侧有空格会导致变量设置失败。博客作者通过实例展示了这一错误,当在set命令中使用等号两侧有空格的方式设置navicat变量时,echo命令无法正确输出变量值。去除空格后,脚本运行正常。此问题提醒程序员注意批处理脚本中的语法细节。
摘要由CSDN通过智能技术生成

今早打算用 bat 写一个自动批量启动 exe 程序的脚本。在编写脚本过程中,有一个有趣的发现。

脚本简化如下:

@echo off
set navicat = "E:\\Navicat Premium 15\\navicat.exe"
start "" %navicat%

上面这个脚本的含义很好理解:通过绝对路径启动 navicat.exe

但是这个脚本存在一个语法上的错误。navicat = "E:\\Navicat Premium 15\\navicat.exe" 中,等号两边不能有空格,否则你会遇到如下情况:

C:\Users\AI_Future>set navicat = "E:\\Navicat Premium 15\\navicat.exe"

C:\Users\AI_Future>echo %navicat%
%navicat%

使用 echo 命令,直接打印了 %navicat% 这个字符串,而不是 "E:\\Navicat Premium 15\\navicat.exe"

去掉等号两边的空格后,一切都变得正常:

C:\Users\AI_Future>set navicat="E:\\Navicat Premium 15\\navicat.exe"

C:\Users\AI_Future>echo %navicat%
"E:\\Navicat Premium 15\\navicat.exe"

所以上面脚本正确的写法应该是:

@echo off
set navicat="E:\\Navicat Premium 15\\navicat.exe"
start "" %navicat%

那么现在问题来了,为什么等号两边不能加空格呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值