Я пытаюсь выполнить некоторую обработку на выходе команды psftp "ls". По сути, я хочу поместить все имена файлов, которые соответствуют определенным условиям, в массив. У меня есть это:
PS C:\path\to\pwd> $a = & "C:\Program Files (x86)\PuTTY\psftp.exe" -l myusername -batch -pw mypassword -b sftpbatch.txt myserver | where {$_.split(" ", [StringSplitOptions]'RemoveEmptyEntries')[0] -eq "-rw-r--r--"} | select-object {$_.split(" ", [StringSplitOptions]'RemoveEmptyEntries')[8]}
(Если вам нужны дополнительные сведения об этой команде, я могу их предоставить. Вывод очень похож на вывод команды "ls" в PowerShell.)
Мне кажется, что я могу добиться большего, сначала выбрав разделение, а затем отфильтровав его с помощью где. Когда я пытаюсь это:
$a = & <# ... #> | select-object {$_.split(" ", [StringSplitOptions]'RemoveEmptyEntries')} | where { $_[0] -eq "-rw-r--r--" }
Я получаю
Unable to index into an object of type System.Management.Automation.PSObject.
Как мне это упростить?