Select/map each item of a Powershell array to a new array

An array in Powershell is declared with @() syntax. % is shorthand for foreach-object. Let’s declare an array with all the file names and loop through it with foreach. join-path combines a path and a child path into a single path.

$files = @("file1.txt", "file2.txt")
$pFiles = $files | % {join-path "c:\temp" $_ }
$pFiles

Output:

c:\temp\file1.txt
c:\temp\file2.txt

NB: if the input consists of single an element, foreach will not return a collection. If an array is desired, either use explicit type or wrap the results. Like so,

[array]$pFiles = $files | % {join-path "c:\temp" $_ }
$pFiles = @($files | % {join-path "c:\temp" $_ })

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)