前提・実現したいこと
初投稿失礼いたします.
バッチファイルで以下の機能(並列処理?)を実装したいのですが,
意図する挙動を実現できないため知恵をお貸しください.
android端末のコマンドによる操作です.以下a端末とします.
,が,バッチファイルのコマンド実行順序が本質的な問題かと思います.
- 時刻からファイル名を取得
- 録画(ここでは150秒)→a端末のsdcardというディレクトリに保存されます
- 録画で作成したsdcard/hoge.mp4をPCにコピー
- a端末上のsdcard/hoge.mp4を削除
上記の2.3.を実行中に次の録画を開始したいという内容です.
###現在のソースコード
bat
1@echo off 2cd /d %~dp0 3 4adb shell screenrecord --bit-rate 1000000 --verbose --verbose /sdcard/try.mp4 5adb shell rm *.mp4 6 7:loop 8 9rem ファイル名は時刻情報から取得 10set YYYYMMDD=%DATE:/=-% 11set HHMMSS=%TIME:~0,8% 12set HHMMSS=%HHMMSS::=-% 13set FILENAME=%YYYYMMDD%_%HHMMSS%.mp4 14 15rem 録画コマンド 16echo now recoding, dont shut this window plz 17adb shell screenrecord --time-limit 150 "/sdcard/%FILENAME%" 18echo saved %FILENAME% 19 20rem ファイル操作(a端末→PC) 21adb pull "/sdcard/%FILENAME%" "%~dp0%FILENAME%" 22adb shell rm "/sdcard/%FILENAME%" 23goto loop
試したこと
・録画コマンドにstart /bをつけると,pullが録画中に連続的に実行され,失敗します.
・pullとrmのみを記載した別のbatファイルを同じディレクトリに用意してcallしても結局は同じでした.(当たり前ですね)
補足情報
録画で150秒と指定しているのは端末側のスペック的な問題と,単純にmp4ファイルの容量肥大化を避けるためです.
また,ソースコード冒頭のtry.mp4関連の2行はadbで頻発するエラーを回避するためのおまじないのようなものです.
こちらを参考にしました
###願わくば...
上記に加えて[q]キー押下で録画を終了してpull,rmまで実行してから終了するようなエスケープコマンドも実装したいです...
こちらについてもよろしくお願いいたします.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/25 22:04