【.cmd】 バッチファイルスクリプト %15 【.bat】at TECH【.cmd】 バッチファイルスクリプト %15 【.bat】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト47:デフォルトの名無しさん 22/11/03 13:10:19.17 P2O5CHdk.net 東京都、富山県、ネバダ州、東京都、東京都、雲南省、ネバダ州、東京都、みたいな数百行のfindの標準出力があって何種類の出力があるのかだけ欲しいんだけど何かスマートな方法ないですか 48:デフォルトの名無しさん 22/11/03 14:00:45.43 sS4Fs93N.net スマートな方法なんてバッチに無いから別のスクリプトあたれ バッチでやるなら以下みたいな感じに一意なものだけ書き出して最後に行数見るか書き出した回数を数えるか copy nul $tmp.txt for /f %%a in (findの結果とやら) do find "%%a" $tmp.txt >nul || >>$tmp.txt echo %%a for /f "delims=:" %%a in ('findstr /n "^" $tmp.txt') do set n=%%a echo %n% 新大阪と大阪みたいに項目名を含む別項目があるならfindstr /r /c:"^%%a$" 49:デフォルトの名無しさん 22/11/03 15:21:55.26 PVTx0HrP.net それほどスマートじゃないけどWSHを(batに埋め込んで)使う方法 (WSHには連想配列の要素数をカウントするものがないのでループで回してカウント) (powershellと使う方法がいいかもしれないがpowershellはイニシャルコストが大きいのでよく使う人向き) @if (0)==(0) echo off cscript //nologo /e:jscript "%~f0" < data.txt rem findstr "." data.txt|cscript //nologo /e:jscript "%~f0" goto :eof @end var table={}, data, count=0; while(!WScript.StdIn.AtEndOfStream) { data = WScript.StdIn.ReadLine(); if (data.length) { table[data] += 1; WScript.Echo(data); } } for (i in table) { count++; } WScript.Echo(count); 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch