Ваш вопрос не очень хорошо задан, трудно понять, что именно вы спрашиваете.Судя по всему, вы хотите получить список каталогов, содержащих один _ , а затем каждый файл .jpg внутри этих папок, добавляющий его в текстовый файл.Это довольно просто:
$folder = "C:\Users\user\Documents"
foreach ($subfolder in (Get-childitem -Directory $folder\*test*)) {
Get-Childitem $subfolder -Name -filter *.csv | Out-file pctrlst.txt -append
}
В вашем коде есть несколько проблем:
$subfldr = Get-childitem -Name -Directory *_*
Использование здесь -Name возвращает только имя папки, а не полный путь.Если вы перейдете в этот каталог в PowerShell, это не будет проблемой, но этот флаг не нужен.
$pctrlst = Get-childitem -Name -Include *.jpg
-Include
необходимо изменить на -Filter
$subfldr | ForEach-Object { $pctrlst | out-file pctrlst.txt }
Здесь вы передаете имена папок (а не путь, а просто имя) в цикл объектов, где вы просто запускаете Out-File для той же переменной, которая содержит сколько угодно файлов jpg, которые находятся в текущемкаталог.Вы просто перезаписываете один и тот же файл одними и теми же данными несколько раз.