今早打算用 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%
那么现在问题来了,为什么等号两边不能加空格呢?