- 概述
- 应用程序事件
- 流程图生成器
- 标注
- 复杂场景
- 凭据
- Data Service
- 表单
- FTP
- IPC
- Automation Ops 管道
- 暂留
- 系统
- 发行说明
- 项目兼容性
- 受支持的字符编码
- “正则表达式构建器”向导
- 添加数据列
- 添加数据行
- 添加日志字段
- 加减日期
- 添加事务项目
- 添加队列项目
- 将项目附加至集合
- 将项目附加至列表
- 附加行
- 提示音
- 中断/退出循环
- 浏览文件
- 浏览文件夹
- 构建集合
- 构建数据表
- 批量添加队列项目
- 更改文本大小写
- 更改类型
- 检查 False
- 检查 True
- 清除数据表
- 从集合到数据表
- 注释
- 压缩文件/Zip 文件
- 复制文件
- 复制文件夹
- 合并文本
- 注释掉/禁用的活动
- 继续/跳过当前
- 创建文件
- 创建文件夹
- 创建列表
- 自定义输入
- 删除
- 删除文件
- 删除文件夹
- 删除存储文件
- 删除队列项目
- 禁用本地触发器
- Do While 循环
- 从 URL 下载文件
- 下载存储文件
- 启用本地触发器
- 评估业务规则
- 存在于集合中
- 提取/解压缩文件
- 从文本中提取日期和时间
- 提取文本
- 文件更改触发器
- 文件已存在
- 筛选集合
- 筛选数据表
- 文件夹存在
- 遍历循环
- 适用于文件夹中的每个文件
- 文件更改触发器 v3
- 查找和替换
- 查找匹配模式
- 对于文件夹中的每个文件夹
- 对于数据表中的每一行
- 将日期格式设置为文本
- 为值添加格式
- 从文本中生成数据表
- 获取资产
- 获取凭据/获取 Orchestrator 凭据
- 获取当前作业信息
- 获取环境文件夹
- 获取环境变量
- 获取文件信息
- 获取文件夹信息
- 获取作业
- 获取进程
- 获取行项目
- 获取密码
- 获取事务项目
- 获取用户名/密码
- 获取队列项目
- 全局变量更改触发器
- 输入对话框
- 调用代码
- 调用 COM 方法
- 调用 PowerShell
- 调用流程
- 调用 VBScript
- 调用工作流文件
- 是否为文本匹配
- 联接数据表
- 终止进程
- 启动工作流交互
- 列出存储文件
- 日志消息
- 查找数据表
- 手动触发器
- 合并集合
- 合并数据表
- 消息框
- 修改日期
- 修改文本
- 移动文件
- 移动文件夹
- 多重分配
- 向队列新增项目
- 通知全局变量已更改
- Orchestrator HTTP 请求
- 输出数据表
- 并行
- 并行的遍历循环
- 存在路径
- 推迟事务项目
- 流程终止触发器
- 流程启动触发器
- 流程跟踪作用域
- 发出警示
- 读取列表项目
- 读取文本文件
- 读取存储文本
- 删除数据列
- 删除数据行
- 删除重复行
- 从集合中删除
- 删除日志字段
- 替换匹配模式
- 重复次数
- 重复触发器
- 重命名文件
- 重命名文件夹
- 报告状态
- 重置计时器
- 恢复计时器
- 重试作用域
- 返回
- 运行本地触发器
- 运行代理
- 运行作业
- 运行并行流程
- 设置资产
- 发送电子邮件通知
- 设置凭据
- 设置环境变量
- 设置密码
- 设置任务状态
- 设置追踪状态
- 设置事务进度
- 设置事务状态
- 应停止
- 拆分文本
- 数据表排序
- 启动计时器
- 开始作业
- 停止作业
- 停止本地触发器
- 停止计时器
- 左侧/右侧的文本
- 要大写/小写的文本
- 时间触发器
- 触发器作用域
- 跟踪对象
- 超时作用域
- 更新行项目
- 更新列表项目
- 上传存储文件
- 等待下载
- 等待队列项目
- 先条件循环
- 工作流占位符
- 写入存储文本
- 写入文本文件
- 添加数据行
- AddQueueItem
- 添加事务项目
- 附加行
- BulkAddQueueItems
- 清除数据表
- 压缩 Zip 文件
- 复制文件
- 创建文件
- 创建文件夹
- 删除文件或文件夹
- 删除队列项目
- 删除存储文件
- 下载存储文件
- 提取解压缩文件
- 筛选数据表
- 获取资产
- 获取凭据
- GetJobs
- 获取队列项目
- GetQueueItems
- 获取本地路径的资源
- 获取行项目
- 获取事务项目
- 调用流程
- 联接数据表
- 列出存储文件
- 查找数据表
- 合并数据表
- 移动文件
- Orchestrator HTTP 请求
- OutputDataTable
- 存在路径
- 推迟事务项目
- 读取存储文本
- 读取文本文件
- 删除数据列
- 删除重复行
- 替换
- 设置资产
- 设置凭据
- SetTransactionProgress
- 设置事务状态
- 数据表排序
- 开始作业
- 停止作业
- 更新行项目
- 上传存储文件
- 等待队列项目
- 写入存储文本
- 写入文本文件
- 测试
- 发行说明
- 关于“测试”活动包
- 项目兼容性
- 项目设置
- Address
- AddTestDataQueueItem
- AttachDocument
- BulkAddTestDataQueueItems
- DeleteTestDataQueueItems
- GetTestDataQueueItem
- GetTestDataQueueItems
- GivenName
- LastName
- RandomDate
- RandomNumber
- RandomString
- RandomValue
- VerifyAreEqual
- VerifyAreNotEqual
- VerifyContains
- VerifyExpression
- VerifyExpressionWithOperator
- VerifyIsGreater
- VerifyIsGreaterOrEqual
- VerifyIsLess
- VerifyIsLessOrEqual
- VerifyIsRegexMatch
- VerifyRange
- Workflow Foundation

工作流活动
获取环境变量
UiPath.Core.Activities.GetEnvironmentVariable
Use this activity to retrieve the value of an environment variable by providing its name. Understanding the platform-specific retrieval behavior is essential for building reliable cross-platform automation workflows.
On Windows, this activity retrieves variables from User Environment Variables with fallback to Process Environment Variables. On cross-platform projects, it retrieves Process Environment Variables only. Understanding how environment variables are loaded from Machine and User levels into the Process scope is crucial for comprehending the Windows and cross-platform behavior differences of the Get Environment Variable and Set Environment Variable activities.
属性
常见
- “显示名称”- 活动的显示名称。此字段仅支持
Strings或String变量。
输入
- Variable - The name of the environment variable whose value is to be retrieved. This field supports only
StringsorStringvariables.
输出
- “变量值”- 所选环境变量的值。
其他
- “私有”- 选中后将不再以“Verbose”级别记录变量和参数的值。
Platform-specific behavior
Windows environment
When running on Windows (default configuration):
- The activity first attempts to retrieve the variable from the User level (
EnvironmentVariableTarget.User). - If not found at the User level, it falls back to the Process level environment variables.
- This fallback mechanism ensures that both user-specific and process-specific variables are accessible.
- System properties exposed through
System.Environment(e.g.,MachineName,OSVersion,UserName) are always checked first regardless of scope.
Cross-platform environment
When running on cross-platform systems (Linux, macOS):
- The activity retrieves variables only from the Process level (
EnvironmentVariableTarget.Process). - This includes variables inherited from the parent process and any set during the current process execution.
- No fallback mechanism is used since User-level variables are Windows-specific.
- System properties exposed through
System.Environmentare still prioritized and accessible.
Retrieval priority
The activity follows this retrieval order:
1. System.Environment Properties (all platforms)
- First checks if the requested variable name matches a built-in .NET property (e.g.,
CurrentDirectory,MachineName,ProcessorCount). - If matched, returns the property value directly.
2. Environment Variables
- Windows: Checks User level first, then falls back to Process level.
- Cross-Platform: Checks Process level only.
Technical details
The activity uses an internal TargetFramework property to determine the execution context:
- "windows" - Uses
EnvironmentVariableTarget.Userwith Process-level fallback. - "portable" - Uses
EnvironmentVariableTarget.Processonly.
This behavior is determined automatically by the UiPath runtime based on the execution environment and cannot be manually configured through the activity properties.
Behavioral differences
Variable persistence
- Windows: Can retrieve persistent user-level variables set through Windows system settings or by the Set Environment Variable activity.
- Cross-Platform: Only retrieves variables available in the current process scope (inherited from shell or set during execution).
变量范围
- Windows: Has access to a wider scope of variables (User + Process).
- Cross-Platform: Has access to a narrower scope (Process only).
最佳实践
- For Windows workflows, you can rely on user-level environment variables for configuration. The automatic fallback ensures process-level variables are still accessible.
- For cross-platform workflows, only rely on environment variables passed to the process or set during execution. Do not depend on user-level variables as they won't be available. Consider passing required configuration through process arguments or configuration files.
- For portable workflows, design workflows assuming Process-level scope only to ensure consistent behavior across platforms. Test that all required variables are available at process startup and document any environment prerequisites clearly.
- System properties: Prefer using .NET's built-in
System.Environmentproperties (likeMachineName,UserName) when available, as they work consistently across platforms.
返回值
- Returns the environment variable value as a string.
- Returns empty string or null if the variable is not found (behavior may vary by platform and .NET version).
- System property values are returned as strings using
.ToString().
示例场景
Scenario 1: Reading PATH variable
- Windows: Successfully retrieves from User or Process scope.
- Linux/macOS: Successfully retrieves from Process scope.
Scenario 2: Reading a user-specific custom variable set via Windows System Properties
- Windows: Successfully retrieves the value.
- Linux/macOS: Returns empty/null (user-level variables don't exist).
Scenario 3: Reading MachineName
- All Platforms: Successfully retrieves from
System.Environment.MachineNameproperty.
- 属性
- Platform-specific behavior
- Windows environment
- Cross-platform environment
- Retrieval priority
- 1. System.Environment Properties (all platforms)
- 2. Environment Variables
- Technical details
- Behavioral differences
- Variable persistence
- 变量范围
- 最佳实践
- 返回值
- 示例场景
- Scenario 1: Reading PATH variable
- Scenario 2: Reading a user-specific custom variable set via Windows System Properties
- Scenario 3: Reading MachineName