指令碼動作
重要
若要防止未經授權的存取,Windows 需要管理員權限來存取受保護的資源。 若要使用指令碼動作來存取受保護的資源 (例如檔案),請以管理員權限執行 Power Automate。 如需有關以管理員身分執行 Power Automate 的詳細資訊,請移至以提升的權限執行 Power Automate。
指令碼動作讓您可以在您的桌面流程中,執行程式碼區塊並實施自訂行為。
重要
正如 2023 年 10 月宣布的內容,VBScript 已從 Windows 中棄用。 在 Windows 的未來版本中,VBScript 將在從操作系統中刪除之前按需提供。 有關更多資訊,請參閱有關已棄用功能的資源。
所有的指令碼動作都會遵循各自的程式設計或指令碼語言的基本結構:PowerShell、Python、VBScript、JavaScript 和 C#/VB.NET。
注意
C#: v 5.0 支援的版本。 VB.NET:v 11.0
由副手支援的自然語言到指令碼 (預覽版)
[本主題是發行前版本文件,可能會在未來變更。]
自然語言到程式碼是電腦版 Power Automate 中新增的副手功能。 它可讓您透過描述快速產生指令碼動作中使用的程式碼。 此功能可在以下指令碼動作中使用:
- 執行 PowerShell
- 執行 VBScript
- 執行 DOS 命令
- 執行 Python
- 執行 JavaScript
重要
- 這是預覽功能。
- 預覽功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。
可用性依區域劃分
目前,電腦版 Power Automate 中的副手僅在位於美國的環境中可用。
按帳戶類型劃分的可用性
目前,電腦版 Power Automate 的副手僅適用於擁有工作或學校帳戶的使用者。
注意
如果您的環境位於上面列出的區域,並且您仍然需要在電腦版 Power Automate 體驗中查看副手,請連絡您的租使用者管理員。 他們可能關閉了副手功能。
如何使用副手和自然語言產生指令碼
若要在支援的指令碼動作之一中產生指令碼,請將該動作拖曳到設計工作中,然後選擇使用 Copilot 產生指令碼。
建立提示畫面將會打開,您可以在其中鍵入自然語言提示。
若要建立指令碼,請編寫提示並選擇產生。 如果您需要重新建立它,可以變更提示並選擇重新產生。 否則,選取使用此指令碼返回主動作窗口,您可以在其中修改它並新增任何必要的變數。
重要
請務必查看 AI 模型產生的內容。
協助我們改善這項功能
透過選取 AI 生成內容下方的向上或向下圖示來傳送意見反應。 完成後,將出現一個意見反應對話方塊,您可以用其向 Microsoft 提交意見反應。
注意
如果您看不到該對話方塊,可能是您的租使用者管理員已將其關閉。 詳細資訊:停用使用者意見反應功能
停用使用者意見反應功能
身為租使用者管理員,您可以透過停用 disableSurveyFeedback
租使用者設定來阻止使用者向 Microsoft 傳送意見反應。 尋找有關查看和設定租使用者設定的更多資訊:
關於使用者意見反應的資料主體權利要求
租用戶管理員可以登入 Microsoft 365 系統管理中心,然後選取健康情況>產品意見反應以查看、匯出和刪除其使用者的意見反應。
具有 Power Automate 資源的 AI
在指令碼中使用變數動作
若要在指令碼動作中聲明變數,並在 Power Automate 中傳回結果,請使用下列命令:
若要在 PowerShell 指令碼中聲明新變數,請使用 $ 註記。 若要將執行 PowerShell 指令碼動作傳回至 Power Automate,請使用寫入輸出命令。
$variableName = "variableValue" Write-Output $variableName
Python 指令碼不需要任何特殊標記法來聲明新變數。 若要從執行 Python 指令碼動作中傳回值,請使用列印功能。
variableName = "variableValue" print variableName
VBScript 不需要任何特殊標記法來聲明新變數。 使用 WScript.Echo 函數從執行 VBScript 動作傳回值至 Power Automate。
variableName = "variableValue" WScript.Echo variableName
在 JavaScript 指令碼中,請使用 var 註解來聲明新變數,而 WScript.Echo 函數會從執行 JavaScript動作中傳回值。
var variableName = "variableValue"; WScript.Echo(variableName);
如果是 .NET 指令碼,請使用指令碼參數視窗,該視窗可透過執行 .NET 指令碼動作的設定卡進行存取。 您可以設定相應變數的類型:
此外,您還可以設定是否是.NET 指令碼的輸入 (方向下拉式功能表中的向內選項)、指令碼的輸出 (方向下拉式功能表中的向外選項),或兩者 (方向下拉式功能表中的內外選項)。
若要在指令碼動作中使用 Power Automate 變數,請使用百分比表示法 (%) 並以與硬編碼值相同的方式處理變數。
執行 DOS 命令
以隱藏模式執行 DOS 命令或控制台應用程式,並在完成時檢索其輸出。
輸入參數
引數 | 選用 | 接受 | 預設值 | 描述 |
---|---|---|---|---|
DOS command or application | 否 | 檔案 | DOS 命令或主控台應用程式的名稱與引數 (如果適用) | |
Working folder | 是 | 資料夾 | 要使用資料夾的完整路徑 (如果適用) | |
逾時後失敗 | 是 | 布林值 | 指定 DOS 命令或應用程式將無限期執行,還是在設定的一段時間過後失敗 | |
Timeout | 否 | 數值 | 10 | 等候指令碼完成的最大秒數 (-1 表示無限期) |
Change code page | 無法使用 | 布林值 | 誤判為真 | 指定是否變更工作階段的目前字碼頁 |
Encoding | 否 | ASMO-708:阿拉伯文 (ASMO 708)、big5:繁體中文 (Big5)、cp1025:IBM EBCDIC (塞爾維亞-保加利亞斯拉夫文)、cp866:斯拉夫文 (DOS)、cp875:IBM EBCDIC (現代希臘文)、csISO2022JP:日文 (JIS-允許 1 位元組假名)、DOS-720:阿拉伯文 (DOS)、DOS-862:希伯來文 (DOS)、EUC-CN:簡體中文 (EUC)、EUC-JP:日文 (JIS 0208-1990 和 0212-1990)、euc-jp:日文 (EUC)、euc-kr:韓文 (EUC)、GB18030:簡體中文 (GB18030)、gb2312:簡體中文 (GB2312)、hz-gb-2312:簡體中文 (HZ)、IBM-Thai :IBM EBCDIC (泰文)、IBM00858:OEM 多語言拉丁文 I、IBM00924:IBM 拉丁文-1、IBM01047:IBM 拉丁文-1、IBM01140:IBM EBCDIC (美國-加拿大-歐洲)、IBM01141:IBM EBCDIC (德國-歐洲)、IBM01142:IBM EBCDIC (丹麥-挪威-歐洲)、IBM01143:IBM EBCDIC (芬蘭-瑞典-歐洲)、IBM01144:IBM EBCDIC (義大利 歐洲)、IBM01145:IBM EBCDIC (西班牙-歐洲)、IBM01146:IBM EBCDIC (英國-歐洲)、IBM01147:IBM EBCDIC (法國-歐洲)、IBM01148:IBM EBCDIC (國際-歐洲)、IBM01149:IB M EBCDIC (冰島-歐洲)、IBM037:IBM EBCDIC (美國-加拿大)、IBM1026:IBM EBCDIC (土耳其拉丁文-5)、IBM273:IBM EBCDIC (德文)、IBM277:IBM EBCDIC (丹麥-挪威)、IBM278:IBM EBCDIC (芬蘭-瑞典)、IBM280:IBM EBCDIC (義大利)、IBM284:IBM EBCDIC (西班牙)、IBM285:IBM EBCDIC (英國)、IBM290:IBM EBCDIC (日文片假名)、IBM297:IBM EBCDIC (法文)、IBM420:IBM EBCDIC (阿拉伯文)、IBM423:IBM EBCDIC (希臘文)、IBM424:IBM EBCDIC (希伯來文)、IBM437:OEM 美國、IBM500:IBM EBCDIC (國際)、ibm737:希臘文 (DOS)、ibm775:波羅的海文 (DOS)、ibm850:西歐語系 (DOS)、ibm852:中歐語系 (DOS)、IBM855:OEM 斯拉夫文、ibm857:土耳其文 (DOS)、IBM860:葡萄牙文 (DOS)、ibm861:冰島文 (DOS)、IBM863:加拿大法文 (DOS)、IBM864:阿拉伯文 (864)、IBM865:日耳曼語 (DOS)、ibm869:希臘文、Modern (DOS)、IBM870:IBM EBCDIC (多種語言拉丁文-2)、IBM871:IBM EBCDIC (冰島文)、IBM880:IBM EBCDIC (斯拉夫俄文)、IBM905:IBM EBCDIC (土耳其文)、iso-2022-jp:日文 (JIS)、iso-2022-jp:日文 (JIS-允許 1 位元組假名 - SO/SI)、iso-2022-kr:韓文 (ISO)、iso-8859-1:西歐語系 (ISO)、iso- 8859-13:愛沙尼亞文 (ISO)、iso-8859-15:拉丁文 9 (ISO)、iso-8859-2:中歐語系 (ISO)、iso-8859-3:拉丁文 3 (ISO)、iso-8859-4:波羅的海文 (ISO)、iso-8859-5:斯拉夫文 (ISO)、iso-8859-6:阿拉伯文 (ISO)、iso-8859-7:希臘文 (ISO)、iso-8859-8:希伯來文 (ISO-Visual)、iso-8859-8-i:希伯來文 (ISO-Logical)、iso-8859-9:土耳其文 (ISO)、Johab:韓文 (裘哈)、koi8-r:斯拉夫文 (KOI8-R)、koi8-u:斯拉夫文 ( KOI8-U)、ks_c_5601-1987:韓文、macintosh:西歐語系 (Mac)、shift_jis:日文 (Shift-JIS)、us-ascii:US-ASCII、utf-16:Unicode、utf-16BE:Unicode (位元組由大到小)、utf-32:Unicode (UTF-32)、utf-32BE:Unicode (UTF-32 位元組由大到小)、utf-7:Unicode (UTF-7)、utf-8:Unicode (UTF-8)、windows-1250:中歐語系 (Windows)、windows-1251:斯拉夫文 (Windows)、Windows-1252:西歐語系 (Windows)、windows-1253:希臘文 (Windows)、windows-1254:土耳其文 (Windows)、windows-1255:希伯來文 (Windows)、windows-1256:阿拉伯文 (Windows)、windows-1257:波羅的海文 (Windows)、windows-1258:越南文 (Windows)、windows-874:泰文 (Windows)、x-Chinese-CNS:繁體中文 (CNS)、x-Chinese-Eten:繁體中文 (倚天)、x-cp20001:TCA 台灣、x-cp20003:IBM5550 台灣、x-cp20004:TeleText 台灣、x-cp20005:Wang 台灣、x-cp20261:T. 61、x-cp20269:ISO-6937、x-cp20936:簡體中文 (GB2312-80)、x-cp20949:韓文 Wansung、x-cp50227:簡體中文 (ISO-2022)、x-EBCDIC-KoreanExtended:IBM EBCDIC (韓文擴充)、 x-Europa:Europa、x-IA5:西歐語系 (IA5)、x-IA5-German:德文 (IA5)、x-IA5-Norwegian:挪威文 (IA5)、x-IA5-Swedish:瑞典文 (IA5)、x -iscii-as:ISCII 阿薩姆文、x-iscii-be:ISCII 孟加拉文、x-iscii-de:ISCII 梵文字母、x-iscii-gu:ISCII 古吉拉特文、x-iscii-ka:ISCII 坎那達文、x-iscii-ma:ISCII 馬來亞拉姆文、x-iscii- or:ISCII 歐利亞文、x-iscii-pa:ISCII 旁遮普文、x-iscii-ta:ISCII 坦米爾文、x-iscii-te:ISCII 特拉古文、x-mac-arabic:阿拉伯文 (Mac)、x-mac-ce:中歐語系 (Mac)、x-mac-chinesesimp:簡體中文 (Mac)、x-mac-chinesetrad:繁體中文 (Mac)、x-mac-croatian:克羅埃西亞文 (Mac)、x-mac -cyrillic:斯拉夫文 (Mac)、x-mac-greek:希臘文 (Mac)、x-mac-hebrew:希伯來文 (Mac)、x-mac-icelandic:冰島文 (Mac)、x-mac-japanese:日文 (Mac)、x-mac-korean:韓文 (Mac)、x-mac-rom anian:羅馬尼亞文 (Mac)、x-mac-thai:泰文 (Mac)、x-mac-turkish:土耳其文 (Mac)、x-mac-ukrainian:烏克蘭文 (Mac)` | utf-8 : Unicode (UTF-8) | 讀取輸出時使用的編碼 |
變數已產生
引數 | 類型 | 描述 |
---|---|---|
CommandOutput | 文字值 | DOS 命令或應用程式的文字輸出 |
CommandErrorOutput | 文字值 | 描述執行 DOS 命令或應用程式期間所發生錯誤 (如有) 的文字 |
CommandExitCode | 數值 | 命令或應用程式結束代碼。 該值為數字 |
例外狀況
例外狀況 | 描述: |
---|---|
無法執行命令或主控台應用程式 | 指出執行指定的命令或主控台應用程式時發生問題 |
無法在分配的時間內執行指令碼 | 指出在分配的時間內執行提供的指令碼時發生問題 |
執行 VBScript
執行自訂 VBScript 程式碼,並將其輸出擷取至變數。
您可以使用此動作將您自己的自訂 VBScript 程式碼包含在桌面流程中,同時也能夠在使用其中的變數,以便在需要時產生動態 VBScript 內容。
輸入參數
引數 | 選用 | 接受 | 預設值 | 描述 |
---|---|---|---|---|
VBScript to run | 是 | 文字值 | 要執行的 VBScript 程式碼。 指令碼中可包含變數,因為在執行 VBScript 之前會先行評估這些變數 | |
逾時後失敗 | 是 | 布林值 | 無法使用 | 指定 VBScript 指令碼將無限期執行,還是在設定的一段時間過後失敗 |
Timeout | 否 | 數值 | 10 | 等候指令碼完成的最大秒數 (-1 表示無限期) |
變數已產生
引數 | 類型 | Description |
---|---|---|
VBScriptOutput | 文字值 | 指令碼的輸出 |
ScriptError | 文字值 | 執行 VBScript 程式碼期間可能發生的錯誤 |
例外狀況
例外狀況 | Description |
---|---|
無法在分配的時間內執行指令碼 | 指出在分配的時間內執行提供的指令碼時發生問題 |
執行 JavaScript
執行自訂 JavaScript 程式碼,並將其輸出擷取至變數。
輸入參數
引數 | 選用 | 接受 | 預設值 | 描述 |
---|---|---|---|---|
JavaScript to run | 是 | 文字值 | 要執行的 JavaScript 程式碼。 指令碼中可包含變數,因為在執行 JavaScript 程式碼之前會先行評估這些變數 | |
逾時後失敗 | 是 | 布林值 | 指定 JavaScript 指令碼將無限期執行,還是在設定的一段時間過後失敗 | |
Timeout | 否 | 數值 | 10 | 等候指令碼完成的最大秒數 (-1 表示無限期) |
變數已產生
引數 | 類型 | Description |
---|---|---|
JavascriptOutput | 文字值 | 指令碼的輸出 |
ScriptError | 文字值 | 執行 JavaScript 程式碼期間可能發生的錯誤 |
例外狀況
例外狀況 | Description |
---|---|
無法在分配的時間內執行指令碼 | 指出在分配的時間內執行提供的指令碼時發生問題 |
執行 PowerShell 指令碼
執行自訂 PowerShell 指令碼,並將其輸出擷取至變數。
您可以使用此動作將您自己的自訂 PowerShell 程式碼包含在桌面流程中,同時也能夠在使用其中的變數,以便在需要時產生動態 PowerShell 內容。
輸入參數
引數 | 選用 | 接受 | 預設值 | 描述 |
---|---|---|---|---|
PowerShell code to run | 是 | 文字值 | 要執行的 PowerShell 程式碼。 指令碼中可包含變數,因為在執行 PowerShell 程式碼之前會先行評估這些變數 | |
逾時後失敗 | 是 | 布林值 | 指定 PowerShell 指令碼是無限期執行,還是在設定的時間段後失敗 | |
Timeout | 否 | 數值 | 10 | 等候指令碼完成的最大秒數 (-1 表示無限期) |
變數已產生
引數 | 類型 | Description |
---|---|---|
PowershellOutput | 文字值 | 指令碼的輸出 |
ScriptError | 文字值 | 執行 PowerShell 程式碼期間可能發生的錯誤 |
例外狀況
例外 | 描述 |
---|---|
無法執行 PowerShell 指令碼 | 指出執行提供的 PowerShell 指令碼時發生問題 |
無法在分配的時間內執行指令碼 | 指出在分配的時間內執行提供的指令碼時發生問題 |
執行 Python 指令碼
執行 Python 指令碼並擷取其輸出。
輸入參數
引數 | 選用 | 接受 | 預設值 | 名描述 |
---|---|---|---|---|
Python script to run | 無 | 文字值 | 要執行的 Python 指令碼 | |
Python 版本 | 無 | Python 2.7、Python 3.4 | Python 2.7 | 指定執行指令碼時要用哪個版本的 Python |
Module folder paths | .是 | 資料夾的清單 | 外部 Python 模組所在資料夾的路徑 |
變數已產生
引數 | 類型 | 名描述 |
---|---|---|
PythonScriptOutput | 文字值 | 指令碼的輸出 |
ScriptError | 文字值 | 執行 Python 指令碼期間可能發生的錯誤 |
例外狀況
例外 | 描述 |
---|---|
無法執行 Python 指令碼 | 指出執行提供的 Python 指令碼時發生問題 |
找不到目錄 | 指示未找到目錄 |
執行 .NET 指令碼
執行 .NET (C#/VB.NET) 指令碼並擷取其輸出。
輸入參數
引數 | 選用 | 接受 | 預設值 | 描述: |
---|---|---|---|---|
語言 | 無法使用 | C#/ VB.NET | C# | 指令碼的語言 |
.NET 指令碼匯入 | 是 | 文字值 | 要納入指令碼的 .NET 指令碼匯入 | |
要載入的參考 | 是 | 資料夾 | .NET 動態連結程式庫 (.dll 檔案) 參考所在的根路徑 | |
指令碼參數 | 是 | 使用者所定義的指令碼參數 | 設定指令碼中定義的參數值 | |
要執行的 .NET 程式碼 | 否 | 文字值 | 要執行的 .NET 程式碼 |
變數已產生
根據使用者在使用指令碼參數視窗時所做的設定,此動作可能會產生變數。
注意
如果動作設定為產生輸出參數 (在設定時使用向外方向),則應務必確保指令碼中的參數設定為非 Null 的值。 否則,由於尚未設定輸出參數,指令碼執行將會導致錯誤。
例外狀況
例外狀況 | 描述: |
---|---|
無法執行.NET 指令碼 | 指出執行提供的 .NET 指令碼時發生問題 |