2020/07/25 #コマンドの差異#2
皆様おはようございます、
#猫でもできるPowerShell(備忘録)
#コマンドの差異#2
<#
Windows PowerShell および PowerShell 7
それぞれのGet-Command結果を Export-CSV で抽出済み
#>
Write-Host 'それぞれのコマンド数を数える'
$ps7=Import-Csv ~\ps7.csv -Encoding default |select
CommandType,Name,Version,Source
$ps7 |Measure-Object |fl @{L='ps7Count';E={$_.count}} #=1558
$psWin=Import-Csv ~\pswin.csv -Encoding default |select
CommandType,Name,Version,Source
$psWin |Measure-Object |fl @{L='psWinCount';E={$_.count}} #=1597
Write-Host 'PowerShell 7に関する集計'
$ps7 |?{$_.name -notin $pswin.name} |
Measure-Object |fl @{L='ps7Only';E={$_.count}}
$ps7 |?{$_.name -in $pswin.name} |tee -v double_7 | #別の変数に放り込む
Measure-Object |fl @{L='ps7Common';E={$_.count}}
$double_7 |group name |? count -gt 1 | #ogv #2件以上あるものを探すフィルタ
Measure-Object |fl @{L='-ps7Double';E={$_.count}}
Write-Host 'Windows PowerShell に関する集計'
$psWin |?{$_.name -notin $ps7.name} |
Measure-Object |fl @{L='psWinOnly';E={$_.count}}
$psWin |?{$_.name -in $ps7.name} |tee -v double_win | #別の変数に放り込む
Measure-Object |fl @{L='psWinCommon';E={$_.count}}
$double_win |group name |? count -gt 1 | #ogv #2件以上あるものを探すフィルタ
Measure-Object |fl @{L='-pswinDouble';E={$_.count}}
それぞれのコマンド数を数える
ps7Count : 1558
psWinCount : 1597
PowerShell 7に関する集計
ps7Only : 15
ps7Common : 1543
-ps7Double : 54 #1,543 -54 =1,489
Windows PowerShell に関する集計
psWinOnly : 96
psWinCommon : 1501
-pswinDouble : 12 #1,501 -12 =1,489
コマンド数の差異が合わない件について引続き調べてみたところ
どうやら同じコマンド名が(別のSource名で)2件登録されているようでした。
#
「tee -v double_7」や 「tee -v double_win」の部分では
同じ結果をあとで再利用する為いったん別の変数に放り込んでいます。
それぞれ、
「Tee-Object -Variable double_7」
「Tee-Object -Variable double_win」
をはしょった書き方です
#
(グルーピング後)2件以上あるものを探すフィルタ「? count -gt 1」は
「?{$_.Count -gt 1}」
をはしょった書き方です
長くなりましたが謎が解けてスッキリしました
ではまた;