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

set [<variable>=[<string>]]
set [/p] <variable>=[<promptString>]
set /a <variable>=<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%
    

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

    set p
    
  • 命令行语法项
  •