【.cmd】 バッチファイルスクリプト %15 【.bat】at TECH【.cmd】 バッチファイルスクリプト %15 【.bat】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト268:デフォルトの名無しさん 23/05/06 19:22:29.47 l5Xh2UOq.net こっちのが短いし判りやすいか $hash=@{}; $json | %{ if (!$hash.Contains($_.characterID) -or $_.Level -gt $hash[$_.characterID].Level) { $hash[$_.characterID] = $_ }}; $hash.Values 269:デフォルトの名無しさん 23/05/06 21:10:41.34 UyrtVAAx.net 機能的にはあるっぽいよ jq "group_by(.characterID) | map(max_by(.Level))" ※動作未確認 270:デフォルトの名無しさん 23/05/06 22:01:27.09 gRoxw4m5.net >>267 powershell でできるのね ありがとう group characterIDでこうなって、 Count Name Group ----- ---- ----- 2 1 {@{characterID=1; Level=50; Status=}, @{characterID=1; Level=100; Status=}} 1 2 {@{characterID=2; Level=50; Status=}} 2 3 {@{characterID=3; Level=50; Status=}, @{characterID=3; Level=100; Status=}} selectの結果こうなってるみたいだけど ID MaxL -- ---- 1 100 2 50 3 100 select内の『E={[int]($_.group | measure -Maximum Level).Maximum}』でLevelの最大値が取れる構文が理解できてない 特に.Maximumの情報が見つからなくてわかってない measure結果のMaximumの値を取得してるってこと? Count : Average : Sum : Maximum : Minimum : StandardDeviation : Property : その後はまだ全然わかってない 『%{ $id=$_.ID; $maxl=$_.MaxL;$json | ?{ $id -eq $_.characterID -and $maxl -eq $_.Level}}』 select結果のIDとMaxLとConvertFrom-Json結果のcharacterIDとLevelが同じ値のものだけ出力しているんだと思うんだけど構文が全く理解できない %はForEach? ?はWhere? って思って調べてるけど記述が一致する説明を見つけられていない 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch