Как преобразовать строку в таблицу или объекты в powershell

Как я могу преобразовать ниже экспортированный текст в CSV, чтобы я мог использовать его в качестве объектов в PowerShell. Например:

where{$_.qlimit -eq 27}

Текст:

  samid            qlimit    qused  
  Administrator    -1        0      
  Guest            -1        0      
  admin            27        8      
  krbtgt           -1        0      
  r                -1        0      
  admin2           44        0  
 sodawillow26 июн. 2016 г., 10:34
Теперь я думаю, что последнее редактирование не отражает реальные входные данные:)

Ответы на вопрос(1)

Решение Вопроса

ИспользоватьGet-Content Командлет для загрузки файла, замените два или более пробелов запятой и преобразуйте его вCSV с использованиемConvertFrom-Csv командлет:

$object = (Get-Content 'your_file').Trim() -replace '\s{2,}', ',' | ConvertFrom-Csv

Если вы сейчас запросите свой объект:

$object | where qlimit -eq 27

Вы получаете желаемый результат:

samid qlimit qused
----- ------ -----
admin 27     8    
 vinu26 июн. 2016 г., 10:23
где я должен использовать отделку?
 Martin Brandl26 июн. 2016 г., 10:21
Я отредактировал свой ответ. Попробуйте снова.
 Martin Brandl26 июн. 2016 г., 09:54
Я не могу воспроизвести это. Вы можете загрузить текстовый файл?
 Martin Brandl26 июн. 2016 г., 10:13
Вы загрузили пустой файл ...
 Martin Brandl26 июн. 2016 г., 10:22
Хорошо, но вы должны использовать.Trim() (см. мой обновленный ответ). Также просим принять ответ.
 Martin Brandl26 июн. 2016 г., 10:35
Вы видите это в моем обновленном ответе.
 vinu26 июн. 2016 г., 09:39
Нет, я получаю сообщение об ошибке ниже. PS C: \ Users \ Администратор> $ object = (Get-Content c: \ temp.txt) -replace '\ s {2,}', ',' | ConvertFrom-Csv ConvertFrom-Csv: невозможно обработать аргумент, поскольку значение аргумента «имя» недопустимо. Измените значение аргумента «имя» и снова запустите операцию. В строке: 1 символ: 77 + $ object = (Get-Content c: \ temp.txt) -replace '\ s {2,}', ',' | ConvertFrom-Csv <<<< + CategoryInfo: InvalidArgument: (:) [ConvertFrom-Csv], PSArgumentException + FullyQualifiedErrorId: Аргумент, Microsoft.PowerShell.Commands.ConvertFromCsvCommand
 vinu26 июн. 2016 г., 10:18
ой извините .. попробуйте это:s000.tinyupload.com/?file_id=03558843404769339391
 vinu26 июн. 2016 г., 10:08
 Stoimen09 мая 2019 г., 14:06
Спасибо за отличный ответ, у меня это сработало. Я немного изменил этот код, чтобы преобразовать строки таблицы в свойства объекта. Пример кода: $ header = "Property", "Value" $ collection = $ stringTable.Trim () -replace '\ s {2,}', ',' | ConvertFrom-Csv -Header $ header и теперь я могу сделать это: $ collection | ForEach-Object {Write-Host "Сделайте что-нибудь с $ ($ _. Property) и $ ($ _. Value)"}
 vinu26 июн. 2016 г., 10:21
Мартин, это сработало .. спасибо .. пожалуйста, посмотрите мой следующий код: $ object = $ users -replace '\ s {3,}', ',' | ConvertFrom-Csv $ object | где {$ _. samid -eq "r"} $ объект, где $ _. qlimit -eq 44

Ваш ответ на вопрос