Сортировка списка имен файлов и папок

obs0lete спросил: 14 ноября 2017 в 05:55 в: powershell

Нужна помощь с сценарием, который я пытаюсь создать. У меня есть сценарий, который просит пользователя ввести текст (из электронной почты) через текстовое поле с помощью Winforms. Это электронное письмо содержит список файлов и папок. Я использую некоторое регулярное выражение, чтобы вырезать из письма ненужное, и у меня осталась переменная (называемая $ results), которая выглядит следующим образом:

$results
file1.zip
graphics\folder1
file2.zip
graphics\folder1
file3.zip
graphics\folder2
etc...

Идея состоит в том, что теперь мне нужно:

Extract file1.zip into graphics\folder1
Extract file2.zip into graphics\folder1
Extract file3.zip into graphics\folder2
...and so on.

я пытаюсь создать собственный объект PSObject, чтобы позже я мог вызвать этот список в скрипте для развертывания файлы в правильные пути. Я с трудом пытаюсь понять, как я могу это сделать. До сих пор я пытался:

$Object = New-Object -TypeName psobject
$Object | Add-Member -MemberType NoteProperty -Name File -Value $results[0]
$Object | Add-Member -MemberType NoteProperty -Name Path -Value $results[1]
$Object

, который дает мне результат:

File       Path
----       ----
file1.zip  graphics\folder1

Когда я пытаюсь перебрать каждый элемент в переменной $ results ...

$Object = New-Object -TypeName psobject
forEach ($i in $results) {
$Object | Add-Member -MemberType NoteProperty -Name File -Value $i[0]
$Object | Add-Member -MemberType NoteProperty -Name Path -Value $i[1]
}
$Object

... я получаю следующую ошибку:

Add-Member : Cannot add a member with the name "File" because a member with that name already exists. To overwrite the member anyway, add the Force parameter to your command.

я не хочу перезаписать, я хочу добавить. Проблема в том, что я не уверен, как сказать PowerShell, чтобы он просматривал каждый элемент в переменной $ results и добавлял его так, чтобы у меня оставалось:

File       Path
----       ----
file1.zip  graphics\folder1
file2.zip  graphics\folder1
file3.zip  graphics\folder2

Как только я это получу, конечным результатом будет то, что я смогу взять результаты в PSObject и затем извлечь соответствующие файлы.

Есть идеи о том, что я здесь делаю не так? все об этом не так? Любая помощь очень ценится!

0 ответов