【.cmd】 バッチファイルスクリプト %15 【.bat】 (907レス)
1-

267: 2023/05/06(土)18:44 ID:ugbjGoYF(1/2) AAS
step1 50と100の両方を抜き出す
step2 複数あったらstep1に対して100を抜き出す
268: 2023/05/06(土)18:48 ID:ugbjGoYF(2/2) AAS
step1 100を抜き出す
step2 無ければ50を抜き出す
269
(1): 2023/05/06(土)18:58 ID:l5Xh2UOq(1/2) AAS
powershellで
$json_string = @'
[{"characterID": 1,"Level": 50, "Status": {"idx":1}},
{"characterID": 1,"Level": 100, "Status": {"idx":2}},
{"characterID": 2,"Level": 50, "Status": {"idx":3}},
{"characterID": 3,"Level": 50, "Status": {"idx":4}},
{"characterID": 3,"Level": 100, "Status": {"idx":5}}]
'@
$json = $json_string | ConvertFrom-Json
$json | group characterID | select @{N='ID';E={$_.Name}},@{N='MaxL';E={[int]($_.group | measure -Maximum Level).Maximum}} | %{ $id=$_.ID; $maxl=$_.MaxL; $json | ?{ $id -eq $_.characterID -and $maxl -eq $_.Level}}
省9
270
(1): 2023/05/06(土)19:22 ID:l5Xh2UOq(2/2) AAS
こっちのが短いし判りやすいか
$hash=@{}; $json | %{ if (!$hash.Contains($_.characterID) -or $_.Level -gt $hash[$_.characterID].Level) { $hash[$_.characterID] = $_ }}; $hash.Values
271
(1): 2023/05/06(土)21:10 ID:UyrtVAAx(1) AAS
機能的にはあるっぽいよ
jq "group_by(.characterID) | map(max_by(.Level))"
※動作未確認
272: 2023/05/06(土)22:01 ID:gRoxw4m5(2/3) AAS
>>269
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の結果こうなってるみたいだけど
省21
273: 2023/05/06(土)22:02 ID:gRoxw4m5(3/3) AAS
唸ってる間に>>270-271が増えてた
ありがとう
調べたり確認してみる
274: 2023/05/07(日)01:38 ID:OzRuG3KU(1) AAS
> measure結果のMaximumの値を取得してるってこと?
そう。「集計プロパティ」とか「計算プロパティ」とかっていう構文。
learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_calculated_properties?view=powershell-5.1#select-object

> %はForEach?
> ?はWhere?
そう。
ForEach-Object {} = % {} = foreach {} ≠ foreach () {}
Where-Object {} = ? {} = where {} ≠ where () {}

こうも書ける。
powershell -c "(gc 〜.txt -Raw | ConvertFrom-Json) | group characterID | foreach {$_.Group | sort Level | select -Last 1} | ConvertTo-Json"
275
(1): 2023/05/09(火)02:15 ID:ZvIGeNCt(1/2) AAS
変数の値に含まれる全角のダブルクォーテーションを
半角のダブルクォーテーションに置換するにはどうすればいいですか?

setによる置換では期待通りに動作しませんでした

set BatFileTag=”test1“
set "%BatFileTag:“="%"
set "%BatFileTag:”="%"
echo %BatFileTag%

set BatFileTag=”test2“
set %BatFileTag:“="%
set %BatFileTag:”="%
省1
276
(1): 2023/05/09(火)05:44 ID:uZ4E3DcQ(1/5) AAS
動くのか確認してないけどBing AIに丸投げしてみたw

バッチファイルで変数の値に含まれる全角のダブルクォーテーションを半角のダブルクォーテーションに置換するには、以下のような方法があります。

- 変数を`%%`で囲んで`set`コマンドで置換する場合、`%%`の前に`~`を付けるとダブルクォーテーションが除去されます¹。例えば、

```bat
set BatFileTag=”test1“
set BatFileTag=%~BatFileTag%
echo %BatFileTag%
```

- 変数を`!`で囲んで遅延展開を有効にすると、全角のダブルクォーテーションも置換できます²。例えば、
省13
277: 2023/05/09(火)05:44 ID:uZ4E3DcQ(2/5) AAS
続き

これらの方法はどれも期待通りに動作しますか?😊

ソース: Bing との会話 2023/5/9
(1) バッチで変数にダブルクオーテーションを格納したい. 外部リンク:teratail.com
(2) バッチファイルで変数を複数行にわけて指定したときのダブル .... 外部リンク:ja.stackoverflow.com
(3) バッチファイルのダブルクォート地獄を回避する方法 - Qiita. 外部リンク:qiita.com
278: 2023/05/09(火)05:55 ID:uZ4E3DcQ(3/5) AAS
いいえ。まだ問題があります。
サンプルのどこにも全角のダブルクォーテーションがでてきません

すみません、サンプルの全角のダブルクォーテーションは見えにくいかもしれませんが、実際にはあります。
コピーしてテキストエディタに貼り付けてみてください。
半角のダブルクォーテーションと比べると、全角のダブルクォーテーションは少し太くて長いです。😊

だそうだ
スマホだとわからんわ
279: 2023/05/09(火)05:56 ID:uZ4E3DcQ(4/5) AAS
バッチの中身もオレはちゃんと読んでないんでBingが意図を正しく理解したかも確認してない
280: 2023/05/09(火)05:59 ID:uZ4E3DcQ(5/5) AAS
リンクのコピペに失敗したやつはこれ

外部リンク:teratail.com

外部リンク:qiita.com
281: 2023/05/09(火)08:56 ID:bGbmh2Wb(1) AAS
そんな難問なのか?
set BatFileTag=“test1”
set BatFileTag
set BatFileTag=%BatFileTag:“="%
set BatFileTag=%BatFileTag:”="%
set BatFileTag
282: 2023/05/09(火)09:15 ID:TEEc9Eeb(1) AAS
>>275
変換結果を変数に格納してないだけじゃん
set BatFileTag=”test1“
set "BatFileTag=%BatFileTag:“="%"
set "BatFileTag=%BatFileTag:”="%"
echo %BatFileTag%

set BatFileTag=”test2“
set BatFileTag=%BatFileTag:“="%
set BatFileTag=%BatFileTag:”="%
echo %BatFileTag%
283: 2023/05/09(火)12:45 ID:ZvIGeNCt(2/2) AAS
>変換結果を変数に格納してないだけじゃん

おっしゃる通りでした、そのコードで期待通り動作しました。
ありがとうございました。
284: 2023/05/09(火)12:54 ID:0Hn95uhF(1) AAS
ケアレスミスやね
自分もよくある
285
(1): 2023/05/09(火)15:10 ID:cxHUCWoc(1) AAS
見覚えのある変数名だと思ったらDTV板の人か
286
(1): 2023/05/10(水)02:46 ID:7WScgW4R(1/3) AAS
>>276
変数を`%%`で囲んで`set`コマンドで置換する場合、`%%`の前に`~`を付けるとダブルクォーテーションが除去されます

え、ホント?と思って やってみたら

バッチ パラメーターの置き換えで、パス演算子の次の使用法は無効です:
%~BatFileTag%

と出力されたんですが、できないですよね?

>>285
EDCBの 録画タグ の話でした。。
1-
あと 621 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s