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

标签 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有用。

问题是它一遍又一遍地吐出相同的命令。

最佳答案

您的代码非常复杂。您可以这样做:

$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是从Shell内部发现和学习PowerShell的三个最有用的工具。

关于powershell - 引发我们的随机命令问题的脚本[Powershell],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55023541/

相关文章:

xml - 使用冒号在 powershell 中搜索 XML

azure - 无法在 Azure Functions v2 中运行 PowerShell 脚本

用于在 AD 中查询特定 OU 的计算机名称并导出的 Powershell 脚本

powershell - 在 PowerShell v3 中运行并行 Invoke-WebRequest 作业

powershell - 如何在管道上的cmdlet之间传递常用的Powershell命令行参数?

powershell - 如何在powershell中分页输出

powershell - 远程获取默认打印机

公网IP地址的Linux命令

wpf - 响应事件时运行命令

powershell - 有条件地排除 null 或空的 cmdlet 参数