当前位置:  开发笔记 > 编程语言 > 正文

如何用空格设置环境变量?

如何解决《如何用空格设置环境变量?》经验,为你挑选了1个好方法。

我需要使用批处理文件将值设置为环境变量.我为此编写了脚本:

@echo off
set value="Hello world"
setx -M srijani "%srijani%;%value%"

它给出了错误:

ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.

我用Google搜索,发现在使用空格时我们需要在双引号内写.

set value="Hello world"

但是,这也行不通.

注意:我在Windows 7上.



1> Mofi..:

命令setx输出的错误是由于在将字符串赋值给变量时错误使用引号引起的value.

命令已设置且参数为variable=value.对于大多数命令和应用程序,如果包含1个或多个空格或此列表中的任何其他字符,则可能并且通常需要使用双引号括起参数:&()[]{}^=;!'+,`~.这些字符通过在命令提示符窗口中运行cmd /?或显示在最后一个帮助页面输出上help cmd.

但这里错了:

set value="Hello world"

在等号后面的第一个双引号中variable=value,命令的整个参数不包含在双引号中.

这导致将双引号解释为字符串的一部分,以分配给具有名称的变量value.从等号到行尾的所有内容(包括双引号和可能存在的尾随空格和水平制表符)在此处分配给变量value而不是Hello world按预期方式分配给字符串.

在扩大线上

setx -M srijani "%srijani%;%value%"

结果是:

setx -M srijani "Value of variable srijani;"Hello world""

并且命令setx将错误的引用参数解释为语法错误.

正确的将使用:

set "value=Hello world"

现在,命令的整个参数都用双引号括起来.因此解析该行时忽略的是:

命令和第一个双引号之间的所有空格/制表符,

第一个双引号,

最后的双引号,

以及最后双引号后的所有可能存在的空格/制表符.

所以只是Hello world分配给一个带名字的变量value.

有关将字符串正确分配给环境变量的更多详细信息,请阅读答案为什么在命令行上使用'set var = text'后,为什么没有字符串输出'echo%var%'?它还包含一个简单的演示批处理代码.

更多信息:

如何解释在中间某处包含1个或多个引号的参数字符串取决于命令分别是应用程序."在参数字符串中解释一个或多个参数的行为可能会有所不同,具体取决于使用的编译器,如批处理文件的答案中所述:列出特定文件夹中的rar文件并将结果写入文本文件,当然还有命令的源代码/申请.

对于大多数命令和应用程序,正确的语法是:

command "parameter in quotes"
"Path to application\app.exe" "parameter in quotes" 

但是有些应用程序需要在参数字符串中间使用引号.此类应用程序的一个示例是Windows资源管理器.

从批处理文件中打开资源管理器窗口,窗口中显示当前目录,需要以下语法.

explorer.exe /e,"%CD%"

不工作的是:

explorer.exe "/e,%CD%"
explorer.exe /e "%CD%"

因此explorer.exe要求/e,在参数字符串中间用引号指定要打开的目录,或者它"/e,%CD%"分别解释"/e %CD%"为具有在资源管理器窗口中显示的路径的目录的名称.

另请参阅Windows资源管理器命令行选项:

KB130510(Windows 95,Windows 98,Windows Millennium,W​​indows NT 4.0)

KB152457(Windows NT 4.0,Windows 2000)

KB314853(Windows XP)

Windows资源管理器记录那些Microsoft支持文章,是对所有3篇文章都是一样的命令行选项也工作了资源管理器在Windows Server 2003,Windows Vista中,在Windows Server 2008 R2,Windows 7中,在Windows Server 2012 R2的Windows 8.0时,Windows 8.1,Windows 10,换句话说,适用于所有32位和64位Windows.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有