In this case, you could simplify it ALOT. Get-Process supports an array of processnames, so you could simply pass it the whole $args-array.
PS > Get-Help Get-Process -Parameter name
-Name <String[]>
Specifies one or more processes by process name.
You can type multiple process names (separated by commas) and use wildcard characters.
The parameter name ("Name") is optional.
Also, the echo is unnecessary, as Write-Output(which echo is an alias for) is the default output for PowerShell.
list_process.ps1
Get-Process $args
Test:
PS > ./list_process notepad svchost
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
77 7 1228 5856 88 0,09 6728 notepad
862 31 32164 33268 101 316 svchost
904 31 40508 42412 121 504 svchost
4463 62 92328 97088 417 512 svchost
519 16 9324 12768 49 808 svchost
827 46 35964 42348 156 832 svchost
601 19 11740 14540 57 840 svchost