使用Splatting在PowerShell中传递参数

今天这一篇文章我们将要探讨如何在PowerShell中使用Splatting方法来传递参数。

首先什么是Splatting呢? 简单的说,Splatting是一种用来打包传递参数值到一个命令的传参方法,Splatting里存储着 先关的参数名以及对应的参数值,使用Splatting我们可以方便的管理参数和参数值,以及从视觉和读写上也更加方便,也方便后续的修改再次使用。

好了,我们一起来看下Splatting到底在PowerShell中是如何使用的,为了更好的让你明白Splatting,我们先举一个普通的例子:

Get-WmiObject -Class Win32_OperatingSystem -Property Version -ComputerName LocalHost

这是一个最为普通的用WMI去查询系统信息版本号的例子。

如果换用Splatting我们可以用如下写法:

$Param = @{Class = "Win32_OperatingSystem";
           Property = "Version";
           ComputerName = "LocalHost"}

Get-WmiObject @Param
如上就是Splatting的写法,它用一个集合包容了参数以及参数值去传递给一个命令。 我们先用一个普通变量定义个哈希表,里面包含了参数名以及对应的参数值如: $Variable = @{ <name>=<value>; <name>=<value>; …} ,随后用@符号直接用对应的命令调用这个参数集变量。


当然Splatting不仅仅只有这一种方式去使用,我们还可以用Splatting去处理位置参数的传参,这里与上面使用集合需要对应的参数名和参数值不同的是,我们只需要相对应的参数值,当然有一点需要注意的是它必须符合对应的参数位置顺序。让我们看下如下例子:

$ArrayArguments = "C:\test1.txt", "D:\"
Copy-Item @ArrayArguments 

直接把想对应的位置参数的值以数组的形式保存在一个变量中,然后依然是直接用@前缀的方式去调用即可。它的效果如同于: 

Copy-Item -Path "C:\test1.txt" -Destination "D:\"

这里不得不说Splatting还有一个重复使用的有点,我们在下面定义了一个颜色参数值集合,将它们重复用于不同的字符串输出中。

$Colors = @{ForegroundColor = "yellow"
            BackgroundColor = "red"}

Write-Host "I love Shanghai" @Colors
Write-Host "He loves Shanghai, too." @Colors

好了,今天就先到里,Splatting还有很多很有趣的方法,大家可以继续去了解。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值