#powershell #command #cmdlet
#powershell #команда #powershell-командлет
Вопрос:
$k = get-command -all | measure | select-object count
$result = $k -replace "[{}@Count=]", ""
$rand = get-random -maximum $result
$minrand = $rand - 1
get-command -all -totalcount $rand | Select-Object -skip $minrand
Предполагается, что он выдает ОДНУ команду, псевдоним, командлет, что угодно. Я хотел бы надеяться, что это будет полезно для изучения PowerShell.
Проблема в том, что он снова и снова выдает одну и ту же команду.
Комментарии:
1. Передайте
Get-Random
вGet-Command
—>Get-Command | Get-Random
Ответ №1:
Ваш код очень сложный. Вы можете просто сделать это:
$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 из командной оболочки.