PowerShell工作流学习-1-嵌套工作流和嵌套函数
关键点:
a)嵌套深度没有任何语法限制,但是嵌套三个层次的工作流不支持任何通用参数,包括工作流通用参数
b)嵌套工作流可以调用当前范围和任何父范围内的工作流和函数
c)工作流不允许递归调用,脚本和函数中允许进行递归调用
d)工作流和函数名称仅可在每个工作流中使用一次。 名称冲突会生成错误,
e)如果嵌套工作流或函数的名称与父范围内的工作流或函数的名称相同,则对该名称的调用将调用当前工作流范围内的工作流或函数
例a:
workflow test-wf3
{
"One"
Two
workflow Two
{
"Two"
Three
Function Three
{
"Three"
function Five {"Five"}
Workflow Four {"Four"; Five}
Four
}
}
} PS C:\Windows\system32> test-wf3
One
Two
Three
Four
Five
例b:
function Zero {"Zero"}
workflow One
{
"One"
Two
Three
Four
workflow Four
{
"Four"; Two; Three; Five;
workflow Five {"Five"; Two; Three; Zero}
}
}
function Two {"Two"}
workflow Three {"Three"}
PS C:\Windows\system32> function Zero {"Zero"}
workflow One
{
"One"
Two
Three
Four
workflow Four
{
"Four"; Two; Three; Five;
workflow Five {"Five"; Two; Three; Zero}
}
}
function Two {"Two"}
workflow Three {"Three"}
PS C:\Windows\system32>One
One
Two
Three
Four
Two
Three
Five
Two
Three
Zero
例c:
workflow one
{
"One"
Two
} workflow two
{
"Two"
One
} 所在位置 行:1 字符: 1
+ workflow one
+ ~~~~~~~~~~~~
工作流无法使用递归。
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : RecursiveWorkflowNotSupported
例d:
workflow Test-Workflow
{
workflow Test1 {"Test1"}
function Test1 {"Hello, Test1"}
} + function Test1 {"Hello, Test1"}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The function or workflow 'Test1' cannot be redefined.
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : FunctionRedefinitionNotAllowed
例e:
function Test-Nested {"Test-Nested Function"}
workflow Test-Workflow
{
Workflow Test-Nested {"Test-Nested Workflow"}
Test-Nested
}
PS C:\>Test-Workflow
Test-Nested Workflow
PowerShell工作流学习-1-嵌套工作流和嵌套函数的更多相关文章
- PowerShell工作流学习-3-挂起工作流
关键点: a)可使用Suspend-Job或Suspend-Workflow(从工作流中)挂起工作流,无法从工作流中恢复工作流. 例a: Workflow Test-Suspend { $a = Ge ...
- PowerShell工作流学习-6-向脚本工作流添加检查点
关键点: a)检查点是工作流当前状态的快照,其中包括变量的当前值以及在该点生成的任何输出,这些信息保存在磁盘. b)检查点数据保存在托管工作流会话的计算机的硬盘上的用户配置文件中. c)当工作流通用参 ...
- Activiti工作流学习笔记(四)——工作流引擎中责任链模式的建立与应用原理
原创/朱季谦 本文需要一定责任链模式的基础,主要分成三部分讲解: 一.简单理解责任链模式概念 二.Activiti工作流里责任链模式的建立 三.Activiti工作流里责任链模式的应用 一.简单理解责 ...
- 工作流学习之--PHP工作流插件
一.支持的PHP的工作流插件有: 1. TPFlow(thinkphp work flow):是一款开源的ThinkPHP工作流插件,用来解决OA.ERP.CRM.CMS等等办公软件的审核审批的问题. ...
- Activiti工作流学习-----基于5.19.0版本(4)
四.使用工作流开发 org.activiti.engine.ProcessEngine提供的Service作用在工作流引擎上面,如果所示是模仿一个公司简单的审批流程,你可以下载这个Demo:Activ ...
- Activiti工作流学习之流程图应用详解
Activiti工作流学习之流程图应用详解 1.目的 了解Activiti工作流是怎样应用流程图的. 2.环境准备2.1.相关软件及版本 jdk版本:Jdk1.7及以上 IDE:eclipse ...
- Activiti工作流学习之概述(一)
一.工作流介绍 我第一次听到这个词,是蒙逼的,再看百度百度,更傻眼了,完全说的不像人话啊,举几个生活中的例子,就明白多了比如:请假.报销等等,如果文字太过抽象,请看图: 二.工作流引擎 Process ...
- 工作流学习——重要概念扫盲篇一步曲 (zhuan)
http://blog.csdn.net/zwk626542417/article/details/46592471 ***************************************** ...
- Activiti工作流学习-----基于5.19.0版本(7)
八.BPMN 2.0流程图详解 BPMN 2.0的标准的出现是好事,用户不在被某个工作流开发商绑架或者在工作流中开发妥协,Activiti作为BPMN标准的一套解决方案,使得用户在选择工作流框架时可以 ...
随机推荐
- 学习MeteoInfo二次开发教程(七)
1.站点文件 12010615.syn在D:\Program Files (x86)\MeteoInfo\SampleSYNOP_Stations.csv在D:\Program Files (x86) ...
- Web缓存机制
Web 缓存的出现主要是为了弥补cookie带来的一些局限,当数据严格控制在客户端时,可以不用通过HTTP来持续得将数据发给服务器. 主要使用比较多的就是sessionStorage和localSto ...
- git 修改客户端用户名和密码
1.修改某个具体项目中的用户名密码 vim xx/{yourProject dir }/.git/.git-credentials 在.git-credentials文件中配置用户名密码 https: ...
- IOS 发布 升级新版本
ERROR ITMS-90725: "SDK Version Issue. ERROR ITMS-90725: "SDK Version Issue. This app was b ...
- Sql入门学习——关系范式
--------关系 --------范式 一.三种关系 1.一对一关系 关系数据库中,第一个表中的单个行只可以与第二个表中的一个行相关,且第二个表中的一个行也只可以与第一个表中的一个行相关. 2.一 ...
- ABAP-FTP-配置
1.FTP配置: 设置FTP参数:IP地址.账号.密码.路径.RFC目标. 设置数据表:数据表及字段明细,设置查询字段及报表输出字段. 2.操作界面 3.程序 ZFID0003_ETL_FTP 主程序 ...
- 深度学习中,使用regularization正则化(weight_decay)的好处,loss=nan
刚开始训练一个模型,自己就直接用了,而且感觉训练的数据量也挺大的,因此就没有使用正则化, 可能用的少的原因,我也就不用了,后面,训练到一定程度,accuracy不上升,loss不下降,老是出现loss ...
- linux 下将tomcat注册成服务并开机启动
一.将startup.sh和shutdown.sh新建软连接到/usr/bin ln -s /usr/local/apache-tomcat-8.5.38/bin/startup.sh /usr/bi ...
- python--第九天总结
python 多进程和多线程 多线程可以共享全局变量,多进程不能.多线程中,所有子线程的进程号相同:多进程中,不同的子进程进程号不同. [多进程] Python在2.6引入了多进程的机制,并提供了丰富 ...
- JS游戏控制时间代码
var canvas = new HGAME.canvas();var testBox=document.getElementById('boxRender');testBox.appendChild ...