logcatでファイルを分けたいがログキャットをクリアし、ファイル名を入力し、ログキャットを止める処理がチョット面倒くさい。。。
なのでそれをなるべく楽にしたいのだが、やりたいことを簡単に書くと
REM ログキャットをクリア
adb logcat -c
REM File名を入力
set /p FleName="Input file name"
REM 入力されたファイル名でlog catを取得
adb logcat > %FleName% + ".txt"
こんな感じである。
が
これだとlogcat 取得停止時にCtrl Cを押し、その後にコマンドプロンプトからバッチ処理を終了しますか? Y/N でNを押さなくてはいけない。
ちなみにY or N 以外を押さないと押されるまでLOOPする。
なのでそこをスキップさせたいがbatには非同期処理が無いため、adb.exeをkillすればいいのではないかという結論にたどり着いた
完成形
@echo off
adb devices
set /P grep="grepしたいWord:"
set extension=.txt
:loop
REM ユーザーにファイル名を入力させる
set /p filename="ログキャットのファイル名を入力してください:ファイル名(%extension%)"
REM ログキャットをクリアする
echo ログキャットをクリアします...
adb logcat -c
REM ログキャットの取得を開始(バックグラウンドで実行)
echo %filename%.txt にログキャットを保存します...
start /MIN "" cmd /c "adb logcat > %filename%.txt"
REM エンターキーを待機してログ取得を停止
choice /n /c y /m "ログの取得中、、Yキーで終了"
adb kill-server
findstr %word% %filename%.txt
goto loop
これでキーを押すだけで次の入力処理になる
完全自動でやりたければ、ファイル名を時間にして出力すればいい