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

windows – 包含带空格的可执行路径的环境变量是否也包含必要的

发布时间:2020-12-13 21:29:31 所属栏目:Windows 来源:网络整理
导读:在定义环境变量时(在 Windows上对我来说,可能有更一般的指导原则) set MY_TOOL=C:DevToolsbinmytool.exe 如果工具位于带空格的路径上 set MY_TOOL=C:Program Files (x86)Foobarbinmytool.exe 环境变量是否已包含必要的空格? 那就是它应该是: set MY
在定义环境变量时(在 Windows上对我来说,可能有更一般的指导原则)
set MY_TOOL=C:DevToolsbinmytool.exe

如果工具位于带空格的路径上

set MY_TOOL=C:Program Files (x86)Foobarbinmytool.exe

环境变量是否已包含必要的空格?

那就是它应该是:

set MY_TOOL="C:Program Files (x86)Foobarbinmytool.exe"

而不是没有空格的上述版本?

注意:鉴于Joeys answer,我真的应该把这个问题缩小到我给出的例子.也就是说,环境变量包含一个由用户或另一个批处理脚本调用的单个(可执行/批处理)工具.

也许这些空间应该以不同方式逃脱?

我会说,在没有引号的情况下执行它并在使用变量的任何地方使用它们:
set MY_TOOL=C:Program Files (x86)Foobarbinmytool.exe

"%MY_TOOL%" -someoption someargument somefile

特别是如果你让用户在某处设置值,我猜这是最安全的选项,因为它们通常不会用引号括起来而不是这样做.

如果有很多地方使用变量,您当然可以重新定义:

set MY_TOOL="%MY_TOOL%"

这让你的生活变得更有弹性.您可以选择检测是否有引号,如果不存在则添加它们以完全确定.

当你的变量只代表一个目录的路径并且你想在那里附加文件名时,那么“无引号”的东西就更重要了,否则你就会构建像

"C:Program Files (x86)Foobarbin"mytool.exe

甚至:

""C:Program Files (x86)Foobarbin"my tool with spaces.exe"

我怀疑会正确解析.

(编辑:李大同)

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

    推荐文章
      热点阅读