set (环境变量)

显示、设置或删除 cmd.exe 环境变量。 如果未使用参数, 则设置 将显示当前环境变量设置。

注释

此命令需要默认启用的命令扩展。

Set 命令也可以使用不同的参数从 Windows 恢复控制台运行。 有关详细信息,请参阅 Windows 恢复环境 (WinRE)

语法

set [<variable>=[<string>]]
set [/p] <variable>=[<promptString>]
set /a <variable>=<expression>

参数

参数 DESCRIPTION
<variable> 指定要设置或修改的环境变量。
<string> 指定要与指定环境变量关联的字符串。
/p 将用户输入的输入行的值 <variable> 设置为一行。
<promptstring> 指定要提示用户输入的消息。 此参数必须与 /p 参数一起使用。
/一个 设置为 <string> 计算的数值表达式。
<expression> 指定数值表达式。
/? 在命令提示符下显示帮助。

注解

  • 如果启用了命令扩展(默认值),并且使用值运行 ,则会显示以该值开头的所有变量。

  • 字符<>|&^都是特殊命令 shell 字符,并且它们必须前面有转义字符()或用引号<string>括起来(^例如,“StringContaining&Symbol”)。 如果使用引号将包含某个特殊字符的字符串引起来,则引号将设置为环境变量值的一部分。

  • 使用环境变量来控制某些批处理文件和程序的行为,并控制 Windows 和 MS-DOS 子系统的显示和工作方式。 Set 命令通常用于 Autoexec.nt 文件中设置环境变量。

  • 如果使用不带任何参数的 set 命令,将显示当前环境设置。 这些设置通常包括 COMSPECPATH 环境变量,这些变量用于帮助查找磁盘上的程序。 Windows 使用的其他两个环境变量是 PROMPTDIRCMD

  • 如果为该变量指定值<variable>,则指定的<variable>值将添加到环境中,并与<string><string>该变量相关联。 如果环境中已存在变量,则新字符串值将替换旧的字符串值。

  • 如果只为 set 命令<string>指定一个变量和一个等号(没有<string>),则会清除与变量关联的值(就好像变量不存在)。

  • 如果使用 /a 参数,则支持以下运算符,优先顺序为降序:

    操作员 执行的作
    ( ) 分组
    ! ~ - 一元
    * / % 算术
    + - 算术
    << >> 逻辑移位
    & 按位 AND
    ^ 位异或
    = *= /= %= += -= &= ^= = <<= >>=
    , 表达式分隔符
  • 如果使用逻辑(&& 或)或 ||模数(%)运算符,请将表达式字符串括在引号中。 表达式中的任何非数值字符串都被视为环境变量名称,其值在处理之前会转换为数字。 如果指定当前环境中未定义的环境变量名称,则会分配零值,这样就可以使用环境变量值执行算术,而无需使用 % 来检索值。

  • 如果在命令脚本外部的命令行中运行 set /a ,则会显示表达式的最终值。

  • 数值是十进制数字,除非以 0 为前缀×为十六进制数字,否则为 0。 因此,0×12 与 18 相同,这与 022 相同。

  • 默认情况下禁用延迟的环境变量扩展支持,但可以使用 cmd /v 启用或禁用它。

  • 创建批处理文件时,可以使用来创建变量,然后使用它们的方式与通过 %9%0 编号变量的方式相同。 还可以将 变量%0%9 用作 设置的输入。

  • 如果从批处理文件调用变量值,请将值用百分比符号括起来(%)。 例如,如果批处理程序创建名为 BAUD 的环境变量,则可以通过在命令提示符处键入 %baud%,将与 BAUD 关联的字符串用作可替换参数。

例子

若要为名为>的环境变量设置 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。 例如,可以在批处理文件中使用 dir %include% ,以显示与 包含 环境变量关联的目录的内容。 处理此命令后,字符串 c:\directory 将替换 %include%

若要在批处理程序中使用 set 命令将新目录添加到 路径 环境变量,请键入:

@echo off
rem ADDPATH.BAT adds a new directory
rem to the path environment variable.
set path=%1;%path%
set

若要显示以字母 p 开头的所有环境变量的列表,请键入:

set p

若要显示当前设备上所有环境变量的列表,请键入:

set