# Dynamo 指令行介面

`-o, -O, --OpenFilePath` 指示 Dynamo 開啟位於此路徑的指令檔案，並執行該檔案包含的指令。只有從 DynamoSandbox 執行時才支援此選項。

`-c, -C, --CommandFilePath` 指示 Dynamo 開啟位於此路徑的指令檔案，並執行該檔案包含的指令。只有從 DynamoSandbox 執行時才支援此選項。

`-v, -V, --Verbose` 指示 Dynamo 將其執行的所有演算結果輸出到指定路徑中的 XML 檔案。

`-g, -G, --Geometry` 指示 Dynamo 將所有演算結果中的幾何圖形輸出到此路徑的 JSON 檔案。

`-h, -H, --help` 取得一些説明。

`-i, -I, --Import` 指示 Dynamo 將組合匯入為節點資源庫。此引數必須是一個 `.dll` 的檔案路徑。如果您要匯入多個 `.dlls`，請以空格分隔列出：`-i 'assembly1.dll' 'assembly2.dll'`。

`--GeometryPath` 包含 ASM 之目錄的相對或絕對路徑。如果提供，將直接從此路徑載入，而不是在硬碟上搜尋 ASM。

`-k, -K, --KeepAlive` 維持運作模式，讓 Dynamo 程序持續執行，直到載入的延伸將其關閉。

`--HostName` 識別與主體關聯的 Dynamo 變體。

`-s, -S, --SessionId` 識別 Dynamo 主體分析階段作業 ID。

`-p, -P, --ParentId` 識別 Dynamo 主體分析父系 ID。

`-x, -X, --ConvertFile` 與 `-O` 旗標結合使用時，會開啟指定路徑中的 `.dyn` 檔案並轉換為 `.json`。檔案的副檔名為 `.json`，並且與原始檔案位於相同目錄。

`-n, -N, --NoConsole` 在維持運作模式下不要依賴主控台視窗與 CLI 互動。

`-u, -U, --UserData` 指定 PathResolver 要用於 CLI 的使用者資料資料夾。

`--CommonData` 指定 PathResolver 要用於 CLI 的一般資料資料夾。

`--DisableAnalytics` 在程序存留期停用 Dynamo 中的分析。

`--CERLocation` 指定位於磁碟上的當機錯誤報告工具。

`--ServiceMode` 指定服務模式啟動。

#### 原因

出於各種原因，您會透過指令行控制 Dynamo，這些原因可能包括：

* 自動執行多個 Dynamo
* 測試 Dynamo 圖表 (使用 DynamoSandbox 時也要查看 -c)
* 以特定順序執行一系列 Dynamo 圖表
* 撰寫執行多個指令行執行的批次檔
* 撰寫另一個程式來控制和自動執行 Dynamo 圖表，並且運用這些計算結果做一些特別的事情

#### 內容

指令行介面 (DynamoCLI) 是對 DynamoSandbox 的補充內容。它是一個 DOS/終端機指令行公用程式，設計來提供指令行引數方便執行 Dynamo。在一開始的實作中，它無法獨立執行，必須從 Dynamo 二進位檔所在的資料夾執行，因為它依賴與沙箱相同的核心 DLL。無法與其他 Dynamo 建置版本互通。

有四種方式可以執行 CLI：從 DOS 命令提示執行、從 DOS 批次檔執行，以及以 Windows 桌面捷徑執行 (其路徑修改為包括指定的指令行旗標)。DOS 檔規格可以是完整的或相對的，也支援對映的磁碟機和 URL 語法。它也可以使用 Mono 建置，並在 Linux 或 Mac 上從終端機執行。

公用程式支援 Dynamo 套件，但是您無法載入自訂節點 (dyf)，只能載入獨立圖表 (dyn)。

在初步測試中，CLI 公用程式支援本土化的 Windows 版本，而且可以使用大寫的 Ascii 字元指定 filespec 引數。

可透過 DynamoCLI.exe 應用程式存取 CLI。此應用程式允許使用者或其他應用程式使用指令字串叫用 DynamoCLI.exe 與 Dynamo 演算模型互動。看起來可能會像下面這樣：

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn"`

此指令會告訴 Dynamo 開啟 *C:\someReallyCoolDynamoFile.Dyn* 的指定檔案，而不繪製任何使用者介面，然後執行它。圖表執行完成後，Dynamo 就結束。

**2.1 版中的新功能**：DynamoWPFCLI.exe應用程式。此應用程式透過加入「幾何圖形 (-g)」選項支援 DynamoCLI.exe 應用程式支援的所有功能。DynamoWPFCLI.exe 應用程式僅限 Windows。

#### 重要注意事項

* 與 DynamoCLI 互動的首選方式是透過指令提示介面。
* 目前，您需要從安裝位置的 \[Dynamo 版本] 資料夾內執行 DynamoCLI。CLI 需要存取與 Dynamo 相同的 .dll，因此不應移動。
* 您應該能夠執行目前在 Dynamo 中開啟的圖表，但這可能會導致意外的副作用。
* 所有檔案路徑都完全遵守 DOS 規範，因此相對路徑和完整路徑應該都能運作，但請務必將路徑放在引號 *"C:path\to\file.dyn"* 中
* DynamoCLI 是新功能，目前不斷在變化：目前 **CLI 只會載入一小組**標準 Dynamo 資源庫，如果圖表未正確執行，請注意這一點。[此處](https://github.com/DynamoDS/Dynamo/blob/master/src/DynamoApplications/PathResolvers.cs#L28)指定這些資源庫
* 目前不提供 std 輸出，如果未遇到錯誤，CLI 將在執行完成後直接結束。

#### 方法

`-o`：您可以用無頭模式開啟 Dynamo 指向將執行圖表的 .dyn。

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn"`

`-v`：可在 Dynamo 以無頭模式執行 (當我們使用 `-o` 打開檔案) 時使用，此旗標會反覆運算圖表中的所有節點，並將輸出值傾印到簡單的 XML 檔中。由於 `--ServiceMode` 旗標可能會強制 Dynamo 執行多個圖表演算，因此輸出檔案會保留發生的每個演算值。

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn" -p "C:\aFileWithPresetsInIt.dyn" --ServiceMode "all" -v "C:\output.xml"`

XML 輸出檔的格式如下：

```xml
    <evaluations>
        <evaluation0>
            <Node guid="e2a6a828-19cb-40ab-b36c-cde2ebab1ed3">
                <output0 value="str" />
            </Node>
            <Node guid="67139026-e3a5-445c-8ba5-8a28be5d1be0">
                <output0 value="C:\Users\Dale\state1.txt" />
            </Node>
            <Node guid="579ebcb8-dc60-4faa-8fd0-cb361443ed94">
                <output0 value="null" />
            </Node>
        </evaluation0>
        <evaluation1>
            <Node guid="e2a6a828-19cb-40ab-b36c-cde2ebab1ed3">
                <output0 value="str" />
            </Node>
            <Node guid="67139026-e3a5-445c-8ba5-8a28be5d1be0">
                <output0 value="C:\Users\Dale\state2.txt" />
            </Node>
            <Node guid="579ebcb8-dc60-4faa-8fd0-cb361443ed94">
                <output0 value="null" />
            </Node>
        </evaluation1>
    </evaluations>
```

`-g`：可在 Dynamo 以無頭模式執行 (當我們使用 `-o` 開啟檔案) 時使用，此旗標會產生圖表，然後將產生的幾何圖形傾印到 JSON 檔中。

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoWPFCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn" -g "C:\geometry.json"`

JSON 幾何圖形檔案的格式如下：

TBD - 工作進行中\`

`-h`：使用此旗標可取得可能選項的清單

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -h`

-i 旗標可使用多次來匯入多個您嘗試開啟的圖表需要執行的組合。

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn" -i"a.dll" -i"aSecond.dll"`

-l 旗標可用來在不同地區設定下執行 Dynamo。但通常而言，地區設定不會影響圖表結果

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -o "C:\someReallyCoolDynamoFile.Dyn" -l "de-DE"`

\--GeometryPath 旗標可用來將 DynamoSandbox 或 CLI 指向一組特定的 ASM 二進位檔案 - 使用方式如下

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoSandbox.exe --GeometryPath "\pathToGeometryBinaries\"`

或者

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoSandbox.exe --GeometryPath "\pathToGeometryBinaries\"`

-k 旗標可用來維持 Dynamo 程序執行，直到載入的延伸將其關閉。

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -k`

\--HostName 旗標可用來識別與主體關聯的 Dynamo 變體。

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe --HostName "DynamoFormIt"`

或者

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoSandbox.exe --HostName "DynamoFormIt"`

-s 旗標可用來識別 Dynamo 主體分析階段作業 ID

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -s [HostSessionId]`

-p 旗標可用來識別 Dynamo 主體分析父系 ID

`C:\Program Files\Dynamo\Dynamo Core\[Dynamo Version]\DynamoCLI.exe -p "RVT&2022&MUI64&22.0.2.392"`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://primer2.dynamobim.org/zh-tw/1_developer_primer_intro/3_developing_for_dynamo/10-command-line-interface.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
