activities
latest
false
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。
UiPath logo, featuring letters U and I in white

ワークフローのアクティビティ

最終更新日時 2026年3月13日

環境変数を取得

UiPath.Core.Activities.GetEnvironmentVariable

このアクティビティを使用して、環境変数の名前を指定してその値を取得します。信頼性の高いクロスプラットフォーム オートメーション ワークフローを構築するには、プラットフォーム固有の取得動作を理解することが不可欠です。

注:

Windows では、このアクティビティはユーザー環境変数から変数を取得し、プロセス環境変数にフォールバックします。クロスプラットフォーム プロジェクトでは、プロセス環境変数のみが取得されます。[環境変数を取得] アクティビティと [環境変数を設定] アクティビティの Windows とクロスプラットフォームの挙動の違いを理解するには、マシン レベルおよびユーザー レベルからプロセス スコープに環境変数がどのように読み込まれるかを理解することが不可欠です。

プロパティ

共通
  • 表示名 - アクティビティの表示名です。このフィールドは Strings または String 型変数のみをサポートします。
入力
  • Variable - 値を取得する環境変数の名前です。 このフィールドは、Strings または String 型変数のみをサポートします。
出力
  • VariableValue - 選択した環境変数の値です。
その他
  • プライベート - オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。

プラットフォーム固有の動作

Windows 環境

Windows で実行する場合 (既定の設定):

  • このアクティビティはまず、ユーザー レベル (EnvironmentVariableTarget.User) から変数の取得を試みます。
  • ユーザー レベルで見つからなかった場合は、プロセス レベルの環境変数にフォールバックします。
  • このフォールバック メカニズムにより、ユーザー固有の変数とプロセス固有の変数の両方にアクセスできるようになります。
  • System.Environment によって公開されるシステム プロパティ (MachineNameOSVersionUserName など) は、スコープに関係なく常に最初にチェックされます。

クロスプラットフォーム環境

クロスプラットフォーム システム (Linux、macOS) で実行する場合:

  • このアクティビティは、プロセス レベル (EnvironmentVariableTarget.Process) からのみ変数を取得します。
  • これには、親プロセスから継承された変数や、現在のプロセスの実行中に設定された変数が含まれます。
  • ユーザー レベルの変数は Windows 固有であるため、フォールバック メカニズムは使用されません。
  • System.Environment を通じて公開されるシステム プロパティは引き続き優先され、アクセス可能です。

取得の優先度

アクティビティは、次の取得順序に従います。

1. System.Environment プロパティ (すべてのプラットフォーム)

  • まず、要求された変数名が組み込みの .NET プロパティ (CurrentDirectoryMachineNameProcessorCount など) と一致するかどうかを確認します。
  • 一致した場合は、プロパティ値を直接返します。

2. 環境変数

  • Windows: 最初にユーザー レベルを確認し、次にプロセス レベルにフォールバックします。
  • クロスプラットフォーム: プロセス レベルのみを確認します。

技術的な詳細

このアクティビティでは、内部 TargetFramework プロパティを使用して実行コンテキストを決定します。

  • "windows" - EnvironmentVariableTarget.User を使用し、必要に応じてプロセス レベルにフォールバックします。
  • "portable" - EnvironmentVariableTarget.Process のみを使用します。

この挙動は、実行環境に基づいて UiPath ランタイムによって自動的に決定され、アクティビティのプロパティを使用して手動で設定することはできません。

挙動の違い

変数の永続性

  • Windows: Windows のシステム設定または [環境変数を設定] アクティビティによって設定された、永続的なユーザー レベルの変数を取得できます。
  • クロスプラットフォーム: 現在のプロセス スコープで使用可能な変数 (シェルから継承された変数または実行中に設定された変数) のみを取得します。

変数スコープ

  • Windows: より広いスコープの変数に対するアクセス権を持ちます (ユーザー + プロセス)。
  • クロスプラットフォーム: より狭いスコープに対するアクセス権を持ちます (プロセスのみ)。

ベスト プラクティス

  • Windows ワークフローの場合、ユーザー レベルの環境変数を使用して構成できます。自動フォールバックにより、プロセス レベルの変数に引き続きアクセスできます。
  • クロスプラットフォーム ワークフローの場合、プロセスに渡された、または実行中に設定された環境変数のみを使用します。ユーザー レベルの変数は利用できないため、依存しないようにしてください。プロセスの引数または設定ファイルを介して必要な設定を渡すことを検討してください。
  • ポータブル ワークフローの場合、プラットフォーム間で一貫した動作を保証するために、プロセス レベルのスコープのみを前提としてワークフローを設計します。必要なすべての変数がプロセスの起動時に利用可能であることをテストし、環境の前提条件を明確にドキュメント化してください。
  • システムのプロパティ: .NET の組み込みの System.Environment プロパティ (MachineNameUserName など) は、プラットフォーム間で一貫して動作するため、使用可能な場合は優先して使用してください。

戻り値

  • 環境変数の値を文字列として返します。
  • 変数が見つからない場合は、空の文字列または null を返します (プラットフォームや .NET のバージョンによって動作が異なる場合があります)。
  • システム プロパティの値は、.ToString() を使用して文字列として返されます。

シナリオ例

シナリオ 1: PATH 変数の読み取り

  • Windows: ユーザー スコープまたはプロセス スコープから正常に取得します。
  • Linux/macOS: プロセス スコープから正常に取得します。

シナリオ 2: Windows のシステム プロパティを使用して、ユーザー固有のカスタム変数セットを読み取る

  • Windows: 値を正常にします。
  • Linux/macOS: 空白/null を返します (ユーザー レベルの変数が存在しないため)。

シナリオ 3: マシン名を読み取る

  • すべてのプラットフォーム: System.Environment.MachineName プロパティから正常に取得します。

このページは役に立ちましたか?

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得