引发我们的随机命令问题的脚本[Powershell]

时间:2019-03-06 12:50:00

标签: powershell command cmdlet

$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

这应该吐出一个命令,别名,cmdlet之类的东西。我希望这对学习PowerShell有用。

问题在于,它一遍又一遍地发出相同的命令。

1 个答案:

答案 0 :(得分: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

正在访问$k的count属性并获取其整数值。

PowerShell返回带有属性的对象,因此,尽管您经常在控制台中看到基于字符串的结果,但是当您想要操纵这些结果时,应该使用对象属性。将对象插入Get-Member是发现对象属性(及其方法等)的好方法。例如,尝试:

$k | Get-Member

查看其属性。

Get-HelpGet-CommandGet-Member是从外壳程序中发现和学习PowerShell的三个最有用的工具。