Ваш код очень сложный. Вы можете просто сделать это:
$Commands = Get-Command -All
Тогда продолжайте:
Get-Random $Commands
Чтобы каждый раз получать разные команды.
Что касается вашего кода, вам никогда не нужно делать это (что вернет строковый результат):
$k = get-command -all | measure | select-object count
$result = $k -replace "[{}@Count=]", ""
Вместо этого вы должны делать что-то вроде этого:
$k = get-command -all | measure | select-object count
$result = $k.count
Через который вы получаете доступ к свойству count $k
и получаете его целочисленное значение.
PowerShell возвращает объекты со свойствами, поэтому, хотя вы часто видите в консоли результаты на основе строк, когда вы хотите манипулировать этими результатами, вы должны работать со свойствами объекта. Привязка объекта к Get-Member
- это хороший способ узнать свойства объекта (а также его методы и т. Д.). Например, попробуйте:
$k | Get-Member
Чтобы увидеть его свойства.
Get-Help
, Get-Command
и Get-Member
- 3 наиболее полезных инструмента для изучения и изучения PowerShell из оболочки.