activities
latest
false
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

工作流活动

上次更新日期 2026年3月9日

获取环境变量

UiPath.Core.Activities.GetEnvironmentVariable

使用此活动,通过提供环境变量的名称来检索其值。了解特定于平台的检索行为对于构建可靠的跨平台自动化工作流至关重要。

备注:

在 Windows 上,此活动从用户环境变量中检索变量,并回退到流程环境变量。在跨平台项目中,它仅检索流程环境变量。了解如何将环境变量从“计算机”级别和“用户”级别加载到“流程”作用域中,对于理解“获取环境变量”“设置环境变量”活动在 Windows 和跨平台上的行为差异至关重要。

属性

常见
  • “显示名称”- 活动的显示名称。此字段仅支持 StringsString 变量。
输入
  • 变量 - 要进行值检索的环境变量的名称。 此字段仅支持 StringsString 变量。
输出
  • “变量值”- 所选环境变量的值。
其他
  • “私有”- 选中后将不再以“Verbose”级别记录变量和参数的值。

特定于平台的行为

Windows 环境

在 Windows(默认配置)上运行时:

  • 该活动首先尝试从“用户”级别检索变量( EnvironmentVariableTarget.User )。
  • 如果未在用户级别找到,则返回到流程级别环境变量。
  • 此回退机制可确保特定于用户的变量和特定于流程的变量均可访问。
  • 无论作用域如何,始终首先检查通过System.Environment (例如MachineNameOSVersionUserName )公开的系统属性。

跨平台环境

在跨平台系统(Linux 、macOS)上运行时:

  • 该活动仅检索流程级别 ( EnvironmentVariableTarget.Process ) 的变量。
  • 这包括从父流程继承的变量以及在当前流程执行期间设置的任何变量。
  • 用户级别的变量特定于 Windows,因此未使用回退机制。
  • 通过System.Environment公开的系统属性仍具有优先级,并且可访问。

检索优先级

活动遵循以下检索顺序:

1. 系统环境属性(所有平台)

  • 首先检查请求的变量名称是否与内置 .NET 属性匹配(例如, CurrentDirectoryMachineNameProcessorCount )。
  • 如果匹配,则直接返回属性值。

2. 环境变量

  • Windows :首先检查“用户” 级别,然后返回到“流程” 级别。
  • 跨平台:仅检查流程级别。

技术详情

该活动使用内部TargetFramework属性来确定执行上下文:

  • "windows" - 使用具有流程级别回退的EnvironmentVariableTarget.User
  • “portable” - 仅使用EnvironmentVariableTarget.Process

此行为由 UiPath Runtime 根据执行环境自动确定,无法通过活动属性手动配置。

行为差异

变量暂留

  • Windows :可以检索通过 Windows 系统设置或“设置环境变量”活动设置的持久性用户级别变量。
  • 跨平台:仅检索在当前流程作用域内可用的变量(继承自 Shell 或在执行期间设置)。

变量范围

  • Windows :可以访问更广泛的变量(用户 + 流程)。
  • 跨平台: 可以访问更窄的作用域(仅限流程)。

最佳实践

  • 对于 Windows 工作流,您可以依赖用户级别的环境变量进行配置。自动回退可确保流程级变量仍可访问。
  • 对于跨平台工作流,仅依赖传递给流程或在执行期间设置的环境变量。不要依赖用户级别变量,因为它们不可用。考虑通过流程参数或配置文件传递所需配置。
  • 对于可移植工作流,设计工作流时仅假定流程级别作用域,以确保跨平台的行为一致。测试所有必需的变量在流程启动时是否可用,并明确记录任何环境先决条件。
  • 系统属性:首选在可用时使用 .NET 的内置System.Environment属性(如MachineNameUserName ),因为它们可以在跨平台上一致地运行。

返回值

  • 以字符串形式返回环境变量值。
  • 如果未找到变量,则返回空字符串或 null(行为可能会因平台和 .NET 版本而异)。
  • 使用.ToString()以字符串形式返回系统属性值。

示例场景

场景 1:读取路径变量

  • Windows:成功从“用户”或“流程”作用域中检索。
  • Linux/macOS:已成功从流程作用域中检索。

场景 2:通过 Windows 系统属性读取设置的特定于用户的自定义变量

  • Windows:成功检索到值。
  • Linux/macOS:返回空/Null(用户级别变量不存在)。

场景 3:读取计算机名称

  • 所有平台: 成功从System.Environment.MachineName属性中检索。

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新