将Windows环境变量分配给批处理变量?

鱼鳞

我似乎无法在批处理脚本中将环境变量分配给另一个变量。

例如,这将起作用:

set varA=C:\this\is\a\directory

我可以快乐地使用

find /I "MyString" %varA%

没有事件。但是,如果我尝试通过这种方式进行分配,

varA=%ENVVAR%\more\dirs

批处理仅停留在CMD窗口中,直到我停止它为止。

我仍在学习Windows令人讨厌的独特脚本的过程,因此我只能推测它在将变量分配给另一个变量方面不合时宜。

伊齐

批量设置变量时需要注意的一件事是不要不必要地使用空格。(我没有在您的问题中看到此内容,但由于我在排查您的问题时发现自己正在这样做,所以想大声说出来。)例如:

set x=123

与...不同

set x = 123

前者将设置%x%123,后者将设置%x %123(请注意,x变量名中的空格,定义后的空格123。)

要注意的另一件事是你不能只说var=value要设置环境变量,必须使用SET命令。

因此,设置环境变量的正确语法如下:

set x=C:\This\is\a\directory
set y=%x%\more\dirs

然后,您可以使用SET命令来验证这些变量的内容。

在此处输入图片说明

但是,如果您只是在Windows中学习脚本语言,那么跳过批处理并直接跳入PowerShell可能对您更有用。PowerShell是Windows Vista及更高版本的标准配置,也可用于XP。这是在PowerShell中完成相同工作的方式。

$x='C:\This\is\a\directory'
$y="$x\more dirs"

(注意:在设置$y使用双引号是有原因的,而在使用单引号时是有原因的$x。在这种情况下,我们既可以使用设置也可以使用$x双引号,但是$y由于需要扩展变量,因此必须在设置中使用双引号。您在学习语言时,将会学到更多有关该知识的信息。)

然后,要验证变量,您可以直接调用它们。

在此处输入图片说明

在大多数情况下,PowerShell对间距的敏感度也大大降低。

$x=123

是相同的

$x = 123

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将环境变量的值分配给helm变量

将terraform输出分配给环境变量

将环境变量的值分配给列表

Jenkins 将输入分配给环境变量

批处理:将行分配给变量

如何将敏感输出变量的值分配给环境变量?

如何将.env文件中的环境变量分配给$ _ENV变量php

环境变量未分配给Typescript

使用并行应用将值分配给全局环境变量

Apache将标头分配给HTTP环境变量?

Windows批处理脚本,用于列出目录中的文件并分配给变量

将目录名称分配给cmd批处理中的变量

使用MS批处理文件将程序的输出分配给变量

将表达式的输出分配给变量批处理

将文件中的行数分配给批处理文件中的变量

如何将 FC 结果分配给变量(批处理文件)

如何获得分配给循环内处理的环境变量的逗号分隔字符串的每个项目?

从Windows批处理文件设置系统环境变量?

Jenkins Windows批处理命令Powershell环境变量

将环境变量传递到批处理文件

Javascript如何处理将setInterval()分配给变量?

将文本文件的每一行分配给一个变量,以验证Windows批处理脚本中数字的顺序

种子作业环境变量 ${WORKSPACE} 分配给子作业

在批处理文件中,如何将一串值分配给变量列表?

将环境变量设置为for循环%% i变量(批处理脚本)

如何在FOR循环中将匹配项分配给变量-批处理

批处理文件未将文件内容分配给变量

将Image对象分配给变量

将工作簿分配给变量