编写脚本操作

重要提示

为防止未经授权的访问,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:11.0 v

由助手支持的自然语言转脚本(预览)

[本主题是预发行文档,有可能会有所更改。]

自然语言转代码是 Power Automate 桌面版中添加的一项新的 copilot 功能。 通过描述,您可以快速生成脚本操作中使用的代码。 此功能在以下脚本操作中可用:

  • 运行 PowerShell
  • 运行 VBScript
  • 运行 DOS 命令
  • 运行 Python
  • 运行 JavaScript

重要提示

  • 这是一项预览功能。
  • 预览功能不适合生产使用且功能可能受限。 这些功能在正式发布之前推出,以便客户可以提前使用并提供反馈。

各地区的可用性

目前,Power Automate 桌面版中的 copilot 仅在美国的环境中可用。

按帐户类型列出的可用性

目前,Power Automate 桌面版中的 copilot 仅适用于拥有工作或学校帐户的用户。

备注

如果您的环境位于上述区域,并且您仍然需要查看 Power Automate 桌面版中的 copilot 体验,请联系您的租户管理员。 他们可能关闭了 copilot 的功能。

如何使用助手和自然语言生成脚本

要在受支持的脚本操作之一中生成脚本,请在设计器中拖放该操作,然后选择使用 Copilot 生成的脚本

“运行 PowerShell”操作的屏幕截图,其中“生成脚本”和“Copilot”按钮高亮显示

创建提示屏幕打开,您可以在其中键入自然语言提示。

提示对话框打开时生成 PowerShell 操作的屏幕截图

要创建脚本,请写下您的提示并选择生成。 如果您需要重新创建,您可以更改提示并选择重新生成。 否则,选择使用此脚本返回主操作窗口,您可以在其中修改并添加任何必要的变量。

提示对话框打开时使用此脚本 PowerShell 操作的屏幕截图

重要提示

确保您始终审查由人工智能模型生成的内容。

帮助我们改进此功能

通过选择人工智能生成的内容下面的好评或差评图标来发送反馈。 完成后,会出现一个反馈对话框,您可以使用该对话框向 Microsoft 提交反馈。 动画 gif 显示 copilot 回答用户从设计器提出的问题。

备注

如果您看不到该对话框,您的租户管理员可能已将其关闭。 更多信息:禁用用户反馈功能

禁用用户反馈功能

作为租户管理员,您可以通过禁用 disableSurveyFeedback 租户设置来阻止您的用户向 Microsoft 发送反馈。 查找有关查看和设置租户设置的更多信息:

用户反馈的数据主体权利请求

租户管理员可以通过登录 Microsoft 365 管理中心,然后选择运行状况>产品反馈,来查看、导出和删除用户的反馈。

具有 Power Automate 资源的人工智能

在脚本操作中使用变量

要在脚本操作中声明变量并在 Power Automate 中返回结果,请使用以下命令:

  • 若要声明 PowerShell 脚本中的新变量,请使用 $ 表示法。 要将运行 PowerShell 脚本操作中的值返回到 Power Automate,请使用 Write-Output 命令。

    $variableName = "variableValue"
    Write-Output $variableName
    
  • Python 脚本不需要任何特殊表示法,即可声明新变量。 若要从运行 Python 脚本操作中返回值,请使用 print 函数。

    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 脚本”操作中用于设置变量类型的“脚本参数”窗口的屏幕截图

此外,您还可以设置它是 .NET 脚本输入(方向下拉列表中的输入选项)、脚本输出(方向下拉列表中的输出选项) 或两者(方向下拉列表中的输入-输出选项)。

“运行 .NET 脚本”操作中用于设置方向的“脚本参数”窗口的屏幕截图

要在脚本操作中使用 Power Automate 变量,请使用百分比表示法 (%) 并以与硬编码值相同的方式处理变量。

包含百分比表示法的 Python 脚本的屏幕截图。

运行 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:IBM 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:希腊语、现代希腊文 (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-视觉)、iso-8859-8-i:希伯来语(ISO-逻辑)、iso-8859-9:土耳其语 (ISO)、Johab:朝鲜语 (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 (Big-Endian)、utf-32:Unicode (UTF-32)、utf-32BE:Unicode (UTF-32 Big-Endian)、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:繁体中文 (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:欧洲、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-romanian:罗马尼亚语 (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 No 文本值 要执行的 Python 脚本代码
Python 版本 No 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 脚本时出现问题