get-command | where-object { $_.commandtype -eq "cmdlet" } | sort-object -property name | select-object -property name | where-object { $_.name -match "^get" } | out-file "getcommands.txt"
$content = get-content "getcommands.txt"
$content | Foreach-Object { $_.TrimEnd() } | where { $_ -match "\w" } | Out-File "getcommands.txt" -encoding Ascii
compare-object -referenceobject $(Get-Content "oldcommands.txt") -differenceobject $(Get-Content "getcommands.txt") -includeequal
此代码检索所有以“get”开头的 cmdlet,并将它们与文本文件中的列表进行比较。它还消除了超额收益和空白,因此比较确实有效。
一切正常,但很难阅读。我只是在学习如何编写 PowerShell 脚本,所以我不确定如何使用更优雅的代码完成相同的任务。
我打赌有一种方法可以在没有所有管道的情况下做到这一点。如果没有一大堆额外的空格和返回,我也无法从第一行代码中获取输出以输出到文本文件。