学习PowerShell 3.0中新增的$PSDefaultParameterValues变量
来源:互联网 发布:php curl跨域 编辑:程序博客网 时间:2024/06/04 20:18
在PowerShell中新增了许多Perference Variable,今天要特别介绍的是标题中提到的$PSDefaultParameterValues变量。
顾名思义该变量的作用就像名字中看到的那样,可以用来作为默认的参数值,预先设置好默认参数值,在特定的环境中或者测试中显得尤为方便,下面让我们看看如何使用。
常用的语法大致有如下两种:
$PSDefaultParameterValues=@{"<CmdletName>:<ParameterName>"="<DefaultValue>"}$PSDefaultParameterValues=@{"<CmdletName>:<ParameterName>"={<ScriptBlock>}}
如下,我们试着给Get-Process命令设置一个Name默认参数值。
$PSDefaultParameterValues = @{"Get-Process:Name"="Notepad"}
我们可以看到,当设置好默认参数值后,当你再次运行Get-Process的时候将出现预先设置好的参数值,也就是直接得出了你想要的筛选结果。
当然你也可以同时设定多个参数值,只需要以 “;” 分隔。
如何使用脚本块设定预先值
接下来,再来让我们看看它是如何支持脚本块预先参数设定的。
以脚本块模式设定参数值其实很简单,只需要按照表达式 @{"<CmdletName>:<ParameterName>"={<ScriptBlock>}} 将语句块的内容替换<ScriptBlock>就行,不过细心的朋友会发现我们在如上图的例子中却多了一对{}大括号,这是为什么呢? 其实很好理解,因为我们的例子中,所用的的命令是Invoke-Command, 而该命令对于参数 -ScriptBlock的用法为:Invoke-Command -ScirptBlock {Get-Process}, 所以正确的方式,理应是把“{Get-Process}” 替换到<ScriptBlock>上。
添加一个值到$PSDefaultParameterValues
大家在测试中一定会发现,当我们在进行多个预先值设定后,在输出$PSDefaultParameterValues时会发现,先前的设定都被覆盖了。尽管我们可以通过之前讲到的";"分号来进行大批量的针对不同命令的预先值设定,但是一旦进行下一次命令设定时系统就会把上一次的操作给覆盖掉,有什么办法吗? 当然有,我们可以使用Add()方法,如下图所以:
以哈希表的凡是添加值即可。
<HashTable>.Add(Key, Value)
删除$PSDefaultParameterValues中的值
理所当然,有Add方法也自然有Remove方法,Remove方法删除值的时候,只需要键入欲删除的参数名即可,如下图所示:
最后我们要说一个尤其有趣又重要的一点。有一种情况,当用户想要设置另一种环境,但是又不想抹去先前设定 大批量 设定值,那该如何是好?很简单$PSDefaultParameterValues在这里考虑到了这点,我们可以临时将他禁用起来,当你希望的时候在打开,看看下面吧:
当我们设置为Disable后,当再次运行Invoke-Command,则变回以往正常模式中那样提示你输入参数值了。
- 学习PowerShell 3.0中新增的$PSDefaultParameterValues变量
- Powershell 变量
- PowerShell 3.0 学习资料
- Windows PowerShell 中的自动变量的列表
- 学习PowerShell的好地方
- PowerShell的学习笔记(1)
- PowerShell的学习笔记(2)
- PowerShell的学习笔记(3)
- sql server 2005中新增加的try catch学习
- sql server 2005中新增加的try catch学习
- 学习ECMAScript5规范中Object新增的API
- PowerShell学习
- Powershell学习
- PowerShell 变量(Variable)
- [20]Window PowerShell DSC学习系列---- start-dscconfiguration 中遇到 Access Denied的解决方案
- Windows Server 2008中PowerShell的使用
- PowerShell中正则表达式的运用
- 关于PowerShell中PassThru的实际作用
- 最长递减子序列
- ActiveMQ - tcp 协议发送消息
- Android AsyncQueryHandler(异步查询机制)
- 猫の国企成长记
- UVa 674 - Coin Change
- 学习PowerShell 3.0中新增的$PSDefaultParameterValues变量
- UVa 10003 Cutting Sticks
- jquery easyui datagrid 分页 详解
- ActiveMQ - tcp 协议接收消息
- XP dos命令方式 去快捷方式箭头
- kindle来袭,当当错过的那些机会
- jquery select 排序
- 单链表
- 【jbpm3.2.3】之二 sample