Я думаю, что вы хотите, это:
ls path1,path2 -recurse
Path1 и Path2 либо должны быть переменными или в кавычках.
Вот пример
PS C:\> ls "c:\temp\test1","c:\temp\test2" -recurse
Directory: C:\temp\test1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/14/2019 10:29 AM test1subdir
Directory: C:\temp\test1\test1subdir
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/14/2019 10:29 AM 13 test1file.txt
Directory: C:\temp\test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/14/2019 10:30 AM 6 test2file.log
Я знаю, что это может быть сумасшествием, но вы можете создать функцию, которая будет почти повторять то, что вы пытаетесь сделать:
function new-ls {
param([Parameter(Position=0)]
[string]$Path,
[Parameter(Position=1)]
[string[]]$Includes)
$StrMatch = ($Path | sls -pattern "^(.*?){(.*?),(.*?)}(.*?)$" -allmatches).matches.groups.value
$NewPaths = @(($StrMatch[1] + $StrMatch[2] + $StrMatch[4]), ($StrMatch[1] + $StrMatch[3] + $StrMatch[4]))
ls $NewPaths -include $Includes -recurse
}
# Running the code
PS C:\temp> new-ls "c:\temp\{test1,test2}\*"
Directory: C:\temp\test1\test1subdir
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/14/2019 10:29 AM 13 test1file.txt
Directory: C:\temp\test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/14/2019 10:30 AM 6 test2file.log
PS C:\temp> new-ls "c:\temp\{test1,test2}\*" "*.txt"
Directory: C:\temp\test1\test1subdir
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/14/2019 10:29 AM 13 test1file.txt
PS C:\temp> new-ls "c:\temp\{test1,test2}\*" "*.txt","*.log"
Directory: C:\temp\test1\test1subdir
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/14/2019 10:29 AM 13 test1file.txt
Directory: C:\temp\test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/14/2019 10:30 AM 6 test2file.log