Пожалуйста, объясните, что означает "% i*g" в этом скрипте PowerShell.

При работе в PowerShell мне нужно было преобразовать нотацию CIDR в начальный IP-адрес и маску подсети.

Выполняя поиск в Google, я обнаружил эту проблему с публикацией в Reddit, которая содержала много неясных способов выполнить эту задачу.

Один, который я нашел особенно интересным, был:

$C = 13
[ipaddress](4.GB-(4GB-shr$C))|% i*g 

Мне потребовалось время, чтобы увидеть это -shr$C был просто PowerShell -shr оператор без пробелов перед $C ссылка на переменную.

Затем мне нужно было искать, чтобы найти это % это псевдоним для Foreach-Object,

Просто запрашивая значение [ipaddress](4.GB-(4GB-shr$C)) Я получил:

Address            : 63743
AddressFamily      : InterNetwork
ScopeId            :
IsIPv6Multicast    : False
IsIPv6LinkLocal    : False
IsIPv6SiteLocal    : False
IsIPv6Teredo       : False
IsIPv4MappedToIPv6 : False
IPAddressToString  : 255.248.0.0

Который показал мне свойства объекта IPAddress. Результат, который мне нужен, это IPAddressToString свойство, которое я мог бы получить с помощью %| IPAddressToString или как-то принудить PowerShell выдавать объект в виде строки.

Поэтому вопрос сейчас в том, что делает синтаксис % i*g имею в виду?

Что такое i а также g и мы выполняем умножение?

1 ответ

Решение

Для большего количества примеров, я собираюсь отослать Вас к моему посту в Программировании Пазлов.

% это псевдоним для ForEach-Object который имеет набор параметров, который принимает имя свойства.

Вы уже видели это в вашем использовании %| IPAddressToString,

Параметр принимает подстановочные знаки, поэтому |% i*g означает вызвать члена, имя которого соответствует этому шаблону, который в этом случае ipaddresstostring,

Шаблон должен разрешаться однозначно, поэтому попробуйте сделать |% i* и вы увидите ошибку, которая предупреждает всех участников, что шаблон может соответствовать.

Причина не умножения в том, что это строка. Поскольку это параметр команды, строка не обязательно должна заключаться в кавычки.

Другие вопросы по тегам