Используя Out-String, вы преобразуете вывод gwmi win32_bios | select serialnumber
в строку и сохраняете ее в $sn
.Итак, $sn
теперь будет иметь следующее содержимое:
PS> $sn
serialnumber
------------
xxxxxxx
Итак, $sn.length
показывает вам длину всей этой строки.Если вы хотите изменить его только на серийный номер:
PS> $sn = gwmi win32_bios | select -Expand serialnumber | out-string
PS> $sn
xxxxxxx
PS> $sn.Length
9
Как видите, мой серийный номер (я удалил оригинал) имеет ширину всего 7 символов.Но $sn.length
показывает 9. Возможно, после вывода есть пара скрытых символов.Я вижу пустую строку после вывода на консоль.
В реальной точке это пространство добавляется Out-String
.Так что тебе это даже не нужно.Вы можете сделать:
PS> $sn = gwmi win32_bios | select -Expand serialnumber
PS> $sn
XXXXXX
PS> $sn.Length
7
$sn
все еще строка.
PS> $sn.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object