set(环境变量)
显示、设置或删除 cmd.exe 环境变量。 如果不结合任何参数使用,set 将显示当前环境变量设置。
注意
此命令需要默认启用的命令扩展。
set 命令还可以使用不同参数从 Windows 恢复控制台运行。 有关详细信息,请参阅 Windows 恢复环境 (WinRE)。
语法
set [<variable>=[<string>]]
set [/p] <variable>=[<promptString>]
set /a <variable>=<expression>
参数设置
参数 | 说明 |
---|---|
<variable> |
指定要设置或修改的环境变量。 |
<string> |
指定要与指定环境变量关联的字符串。 |
/p | 将 <variable> 的值设置为由用户输入的一行输入。 |
<promptstring> |
指定提示用户输入的消息。 此参数必须与 /p 参数一起使用。 |
/a | 将 <string> 设置为计算的数值表达式。 |
<expression> |
指定数值表达式。 |
/? | 在命令提示符下显示帮助。 |
注解
如果启用了命令扩展(默认),并且运行带值的 set,则将显示以该值开头的所有变量。
<
、>
、|
、&
和^
是特殊的命令 shell 字符,在<string>
中使用这些字符时,必须在它们前面加上转义字符 (^
) 或用引号将其括起来(例如“StringContaining&Symbol”)。 如果使用引号将包含某个特殊字符的字符串引起来,则引号将设置为环境变量值的一部分。使用环境变量控制某些批处理文件和程序的行为,并控制 Windows 和 MS-DOS 子系统的显示和工作方式。 set 命令通常用于在 Autoexec.nt 文件中设置环境变量。
如果使用不带任何参数的 set 命令,则会显示当前环境设置。 这些设置通常包括 COMSPEC 和 PATH 环境变量,它们用于帮助查找磁盘上的程序。 Windows 使用的其他两个环境变量是 PROMPT 和 DIRCMD。
如果为
<variable>
和<string>
指定值,则指定的<variable>
值将添加到环境中,<string>
与该变量关联。 如果环境中已存在变量,则新字符串值将替换旧的字符串值。如果仅为 set 命令指定变量和等号(没有
<string>
),则会清除与变量关联的<string>
值(就好像变量不存在一样)。如果使用 /a 参数,则支持以下运算符(优先级递减):
操作员 执行的操作 ( )
分组 ! ~ -
一元 * / %
算术 + -
算术 << >>
逻辑移位 &
位与 ^
位异或 = *= /= %= += -= &= ^=
= <<= >>=
,
表达式分隔符 如果使用逻辑(
&&
或||
)或模数 (%) 运算符,请将表达式字符串括在引号中。 表达式中的任何非数值字符串都被视为环境变量名称,其值在处理之前会转换为数字。 如果指定在当前环境中未定义的环境变量名称,则会分配一个零值,这样就可以使用环境变量值执行算术,而无需使用 % 检索值。如果从命令脚本外部的命令行运行 set /a,则会显示表达式的最终值。
数值是十进制数字,除非前缀为 0×(对于十六进制数字)或 0(对于八进制数字)。 因此,0×12 等同于 18,18 等同于 022。
默认情况下禁用延迟环境变量扩展支持,但可以使用 cmd /v 启用或禁用它。
创建批处理文件时,可以使用 set 来创建变量,然后以与使用编号变量 %0 到 %9 相同的方式使用它们。 还可以使用变量 %0 到 %9 作为 set 的输入。
如果调用批处理文件中的变量值,请将值用百分比符号 (%) 括起来。 例如,如果批处理程序创建名为 BAUD 的环境变量,则可以通过在命令提示符下键入 %baud%,将与 BAUD 关联的字符串用作可替换参数。
示例
若要为名为 testVar
的环境变量设置值 TEST^1,请键入:
set testVar=TEST^^1
set 命令将等号 (=) 后的所有内容分配给变量的值。 因此,如果键入 set testVar=TEST^1
,将得到以下结果,testVar=TEST1
。
要为环境变量 testVar
设置值 TEST&1,请键入:
set testVar=TEST^&1
若要设置名为 include 的环境变量,以便字符串 c:\directory 与其关联,请键入:
set include=c:\directory
然后,可以在批处理文件中使用字符串 c:\directory,方法是用百分比符号 (%) 将名称 include 括起来。 例如,可以在批处理文件中使用 dir %include%
来显示与 include 环境变量关联的目录的内容。 处理此命令后,字符串 c:\directory 将替换 %include%。
若要在批处理程序中使用 set 命令将新目录添加到 path 环境变量,请键入:
@echo off
rem ADDPATH.BAT adds a new directory
rem to the path environment variable.
set path=%1;%path%
set
若要显示以字母 p 开头的所有环境变量的列表,请键入:
set p
若要显示当前设备上所有环境变量的列表,请键入:
set