What is Splatting ?
Splatting is a method of passing a collection of parameter values to a command as unit.
It can make your commands shorter and easier to read, especially if they are long…
Really all it is, is just a way to pass parameters to commands, typically with a hash table https://technet.microsoft.com/en-us/library/ee692803.aspx
e.g.
You could use this powershell cmdlet which has lots of parameters
Register-ScheduledTask -TaskName "ArchiveLogFiles" -Action $action -Trigger $trigger -User $Username -Password $Password -Settings $settings -RunLevel "Highest" -Description "Archives Log files"
You could use back ticks “`” to make it more readable, but that looks ugly and prone to error (forgetting to use the back tick causes error in your code)
Register-ScheduledTask ` -TaskName "ArchiveLogFiles" ` -Action $action` -Trigger $trigger ` -User $Username` -Password $Password` -Settings $settings` -RunLevel "Highest"` -Description "Archives Log files"
So … Splatting , you do this
$params = @{ "TaskName" = "ArchiveLogFiles" "Action" = $action "Trigger" = $trigger "User" = $Username "Password" = $Password "Settings" = $settings "RunLevel" = "Highest" "Description" = "Archives Log files" } Register-ScheduledTask @Params
So, all you are doing is creating a hash table of all the parameters you want to use and then using the @ to splat those parameters in after the cmdlet name
Looks like the back tick option, but…. tidier and easier to read
Further reading:
https://technet.microsoft.com/en-us/magazine/gg675931.aspx
https://technet.microsoft.com/en-us/library/jj672955.aspx