上下文

提供在工作流执行过程中可用的上下文信息,例如内置变量和内置函数。

内置变量

步骤字段中可用的内置变量。注意在非条件字段中使用时需要使用模板写法,详见内置变量

“权限等级”字段表示该内置变量对应路径在访问时所需要的权限等级。

ExitCode

WARNING

默认状态下工作流会以严格模式执行,因此需要在package.toml中显式申明关闭严格模式后才能正常使用此内置变量。

使用此变量并不符合最佳实践,请尽可能减少使用。

上一步骤的退出码,类型为整数。若步骤被正常执行则其值为 0,否则不为 0。

  • 权限等级:Normal
  • 示例值:0
  • 示例:
    # 条件字段中使用
    if = 'ExitCode==0'
    

PackageVersion

当前包的版本号

  • 权限等级:Normal
  • 示例值:1.0.0.0
  • 示例:
    # 条件字段中使用
    if = 'PackageVersion=="1.0.0.0"'
    

DefaultLocation

当前包的默认安装位置

  • 权限等级:Normal
  • 示例值:C:/Users/UserName/ept/Microsoft/VSCode
  • 示例:
    # 非条件字段中使用
    to = "${DefaultLocation}/config"
    
    # 条件字段中使用
    if = 'DefaultLocation=="C:/Users/UserName/ept/Microsoft/VSCode"'
    

SystemDrive

系统盘符

  • 权限等级:Sensitive
  • 示例值:C:
  • 示例:
    # 非条件字段中使用
    to = "${SystemDrive}/Windows/system32"
    
    # 条件字段中使用
    if = 'SystemDrive=="C:"'
    

Home

用户主目录

  • 权限等级:Important
  • 示例值:C:/Users/UserName
  • 示例:
    # 非条件字段中使用
    to = "${Home}/Document"
    
    # 条件字段中使用
    if = 'Home=="C:/Users/UserName"'
    

AppData

应用数据目录

WARNING

注意:此变量和 Windows 系统内的 %appdata% 变量表示的目录位置不同,其不会自动在末尾加上Roaming

  • 权限等级:Sensitive
  • 示例值:C:/Users/UserName/AppData
  • 示例:
    # 非条件字段中使用
    to = "${AppData}/Roaming/Microsoft/Windows/Start Menu"
    
    # 条件字段中使用
    if = 'AppData=="C:/Users/UserName/AppData"'
    

ProgramFiles_X64

ProgramFiles 目录

  • 权限等级:Sensitive
  • 示例值:C:/Program Files
  • 示例:
    # 非条件字段中使用
    to = "${ProgramFiles_X64}/Microsoft/Windows"
    
    # 条件字段中使用
    if = 'ProgramFiles_X64=="C:/Program Files"'
    

ProgramFiles_X86

ProgramFiles (x86) 目录

  • 权限等级:Sensitive
  • 示例值:C:/Program Files (x86)
  • 示例:
    # 非条件字段中使用
    to = "${ProgramFiles_X86}/Microsoft"
    
    # 条件字段中使用
    if = 'ProgramFiles_X86=="C:/Program Files (x86)"'
    

Desktop

当前用户桌面目录

  • 权限等级:Important
  • 示例值:C:/Users/UserName/Desktop
  • 示例:
    # 非条件字段中使用
    to = "${Desktop}"
    
    # 条件字段中使用
    if = 'Desktop=="C:/Users/UserName/Desktop"'
    

PublicDesktop

公用桌面目录

  • 权限等级:Important
  • 示例值:C:/Users/Public/Desktop
  • 示例:
    # 非条件字段中使用
    to = "${PublicDesktop}"
    
    # 条件字段中使用
    if = 'PublicDesktop=="C:/Users/Public/Desktop"'
    

Arch

运行时系统架构,可能的值:X64 X86 ARM64

  • 权限等级:Normal
  • 示例值:X64
  • 示例:
    # 条件字段中使用
    if = 'Arch=="X64"'
    

内置函数

步骤的条件语句可用的内置变量。当前版本提供的内置变量都是输入为String输出为Bool的简单函数。

Exist

检查某个路径指向的文件或目录是否存在

  • 入参校验:需要输入合法的路径
  • 示例:if = 'Exist("${SystemDrive}/Windows")'
  • 权限:
    • 类型:fs_read
    • 等级:根据输入路径决定

IsAlive

检查某个进程是否正在运行

  • 入参校验:需要以 .exe 结尾
  • 示例:if = 'IsAlive("code.exe")'
  • 权限:

IsDirectory

检查某个路径是否指向一个目录

  • 入参校验:需要输入合法的路径
  • 示例:if = 'IsDirectory("${SystemDrive}/Windows")'
  • 权限:
    • 类型:fs_read
    • 等级:根据输入路径决定

IsInstalled

检查某个包是否已被 ept 安装

  • 入参校验:需要匹配模式 'SCOPE/NAME'
  • 示例:if = 'IsInstalled("Microsoft/VSCode")'
  • 权限: