Как я могу преобразовать объект массива в строку?
Я попытался:
$a = "This", "Is", "a", "cat"
[system.String]::Join(" ", $a)
не повезло . Каковы различные возможности в PowerShell?
powershell
powershell-2.0
jrara
источник
источник
Ответы:
Использование двойных кавычек (и при желании использовать разделитель
$ofs
)Использование оператора join
Используя преобразование в
[string]
источник
$ofs
это задокументировано здесьЯ обнаружил, что передача массива в
Out-String
командлет тоже работает хорошо.Например:
От того, какой метод лучше всего использовать, зависит от вашей конечной цели.
источник
$a
будет иметь такой же эффект, как$a | out-string
($a | out-string).getType()
= Строка$a.getType()
= Объект []. Если вы используете $ a в качестве аргумента для метода, ожидающего строку (например,invoke-expression
например),$a | out-string
это дает явное преимущество.Вторая строка выполняет операцию и выводит на хост, но не изменяет $ a:
источник
Из трубы
Написать-Host
пример
источник
$ofs
ЯвляетсяOutput Field Separator
переменной , которая используется , когда массив преобразуется в строку для вывода. Здесь это установлено в блоке скрипта, возвращающем строковое значение ввода (массив из канала), который выполняется командой&
. Я не знал об этом$ofs
раньше, а также&
принял блок сценария в качестве аргументаВы можете указать тип так:
Проверка типа:
Подтверждает:
Вывод $ a:
источник
источник