PowerShell实现参数互斥示例
在PowerShell的函数中如果想让参数互斥,可以使用 “ParameterSetName”属性将一个parameter属性定义在不同的参数或着参数集合中。
很多人可能没有留意,在PowerShell的函数中,我们可以将多个参数属性定义在同一个参数名上,这样配合mandatory可以让一个参数在某个场景下是强制的,在另外的场景下则是可选的。
function Test-ParameterSet { [CmdletBinding(DefaultParameterSetName='NonCredential')] param ( $id, [Parameter(ParameterSetName='LocalOnly', Mandatory=$false)] $LocalAction, [Parameter(ParameterSetName='Credential', Mandatory=$true)] [Parameter(ParameterSetName='NonCredential', Mandatory=$false)] $ComputerName, [Parameter(ParameterSetName='Credential', Mandatory=$false)] $Credential ) $PSCmdlet.ParameterSetName $PSBoundParameters if ($PSBoundParameters.ContainsKey('ComputerName')) { Write-Warning '远程调用' } }
上面的函数Test-ParameterSet 将演示在参数”NonCredential”激活时, -ComputerName为可选参数。而当你使用了 -Credential 参数时, -ComputerName 就变成了强制参数。而当你使用了 -LocalAction 参数以后,-ComputerName和-Credential均可有可无。
相关推荐
-
Powershell互斥参数使用实例
有时Powershell的函数需要互斥,让用户只能在其中二选一. 要给脚本创建一组互斥的参数,可以给他们打上不同的属性标志,同时确保它们的唯一性(假设不能自动识别参数类型). function Test-ParameterSet { [CmdletBinding(DefaultParameterSetName='number')] param ( [int] [Parameter(ParameterSetName='number', Position=0)] $id, [string] [Par
-
PowerShell实现参数互斥示例
在PowerShell的函数中如果想让参数互斥,可以使用 "ParameterSetName"属性将一个parameter属性定义在不同的参数或着参数集合中. 很多人可能没有留意,在PowerShell的函数中,我们可以将多个参数属性定义在同一个参数名上,这样配合mandatory可以让一个参数在某个场景下是强制的,在另外的场景下则是可选的. function Test-ParameterSet { [CmdletBinding(DefaultParameterSetName='Non
-
PowerShell函数参数设置成自动识别数据类型的例子
本文介绍PowerShell自定义函数中使用参数集时,怎么设置系统自动识别参数的数据类型. 识别参数类型的一个好处就是,在使用参数集时,不需要每次都指定参数名称了. 请看下面这个Test-Binding函数.这个PowerShell函数在设置参数集的时候,为参数集中的第一个参数设置了数据类型,这样在调用函数时,就可以自动判断一个参数值它应该赋给哪个参数了. 复制代码 代码如下: function Test-Binding { [CmdletBinding(DefaultParameter
-
PowerShell函数参数设置为即可选又必选的方法
本文介绍PowerShell自定义函数中使用参数集时,可以将同一个参数既设置为可选,又设置为必选. 好吧,小编承认,这个话题有点无聊,但确实还是有点有趣,不妨看一看啦. 在PowerShell中,我们有可能有这样的需求,如果只需要输入某个参数时,这个参数是可选的.但如果还要输入别的参数,那这个参数就变成必选的了.那么这种需求如何来满足呢?那就是本文的意义所在了. 复制代码 代码如下: function Connect-Somewhere { [CmdletBinding(DefaultP
-
PowerShell默认参数$PSDefaultParameterValues结合Out-File输出到日志文件
输出log是一个永恒的话题,什么tracelistener,net4log,nlog,windows中自带的eventlog,之前在自动重定向PowerShell控制台输出到文件 也算.其实借助于PowerShell 3.0以后的PowerShell默认参数$PSDefaultParameterValues,可以让Out-File,命令也变成也简易的Log神器. 复制代码 代码如下: $PSDefaultParameterValues['Out-File:FilePath'] = 'mylog.
-
pytorch 共享参数的示例
在很多神经网络中,往往会出现多个层共享一个权重的情况,pytorch可以快速地处理权重共享问题. 例子1: class ConvNet(nn.Module): def __init__(self): super(ConvNet, self).__init__() self.conv_weight = nn.Parameter(torch.randn(3, 3, 5, 5)) def forward(self, x): x = nn.functional.conv2d(x, self.conv_w
-
python调用jenkinsAPI构建jenkins,并传递参数的示例
安装jenkins 安装jenkins很简单,可以用多种方式安装,这里知道的有: 在官网下载rpm包,手动安装,最费事 centos系统通过yum安装,ubuntu通过apt-get安装(不推荐,因为很多东西都使用了默认的) 直接下载官网上的war包 我这里直接用的下载war包 遇到的坑 在安装之前,公司的服务器上已经有一个版本的jekins在运行了,所有参数都已经被设置过了,所以,重新安装的版本,虽然文件夹,用户都和以前的版本不一样,但是每次jenkins页面都是直接跳转上个版本的,并不会进入
-
request基本使用及各种请求方式参数的示例
目录 各种请求方式 pip3 install requests >>> import requests >>> r = requests.get('https://www.cnblogs.com') >>> r = requests.post('https://www.cnblogs.com', data = {'key':'value'}) >>> r = requests.put('https://www.cnblogs.com'
-
C#可变参数params示例详解
目录 前言 示例 探究本质 扩展知识 总结 前言 前几天在群里看到群友写了一个基础框架,其中设计到关于同一个词语可以添加多个近义词的一个场景.当时群友的设计是类似字典的设计,直接添加k-v的操作,本人看到后思考了一下觉得使用c#中的params可以更优雅的实现一个key同时添加一个集合的操作,看起来会更优雅一点,这期间还有群友说道params和数组有啥区别的问题.本篇文章就来大致的说一下. 示例 params是c#的一个关键字,用用汉语来说的话叫可变参数,这里的可变,不是说的类型可变,而是指的个
-
js中yield参数应用示例深入理解
目录 yield是什么 yield应用的简单例子 demo1 错误的调用 demo2 一些说明 next()函数及参数 yield参数的对比 更深层次的理解yield 分析 A组 B组 目前项目中的可用性 yield是什么 yield是ES6的新关键字,使生成器函数执行暂停,yield关键字后面的表达式的值返回给生成器的调用者.它可以被认为是一个基于生成器的版本的return关键字. yield关键字实际返回一个IteratorResult(迭代器)对象,它有两个属性,value和done,分别
-
JS数据分析数据去重及参数序列化示例
目录 列表去重 对象转为查询字符串 获取查询参数 列表去重 使用 Set 数据结构 const set = new Set([2, 8, 3, 8, 5]) 注:Set 数据结构认为对象永不相等,即使是两个空对象,在 Set 结构内部也是不等的 方法封装 const uniqueness = (data, key) => { const hash = new Map() return data.filter(item => !hash.has(item[key]) && has
随机推荐
- 6款新颖的jQuery和CSS3进度条插件推荐
- vbs实现的保存剪贴板中的文本并编辑或保存
- cloudera manager 设置开机自启的方法
- 用bat操作注册表实现不显示扩展名
- Java单例模式、饥饿模式代码实例
- ASP.NET MVC5网站开发之添加\删除\重置密码\修改密码\列表浏览管理员篇2(六)
- WordPress的文章自动添加关键词及关键词的SEO优化
- 浅谈php中urlencode与rawurlencode的区别
- 零基础学Python(一)Python环境安装
- Python splitlines使用技巧
- JSP 开发之Servlet解决网页缓存问题
- 如何简单地上传文件?
- 在.jsp中非表单请求action的几种方式总结
- SpringBoot之Controller的使用详解
- Nginx+IIS简单的部署教程
- JavaScript格式化数字的函数代码
- 23种设计模式(6) java装饰者模式
- spring+mybatis 通过@ResponseBody返回结果中文乱码的解决方法
- Android媒体开发之音乐播放器
- java.text.DecimalFormat用法详解