adb 抓取日誌到指定檔案,檔案命名為當前電腦時間
阿新 • • 發佈:2018-10-31
需求產生原因
我們儲存日誌的時候,需要把日誌檔名命名為當前的系統時間,方便我們以後檢視日誌。
命令如下
adb logcat > "%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%-%time:~3,2%-%time:~6,2%.txt"
rem 根據當前日期獲取,年月日串 set yyyy=%date:~,4% set mm=%date:~5,2% set day=%date:~8,2% set "YYYYmmdd=%yyyy%%mm%%day%" rem 把年月日串中的空格替換為0 set "YYYYmmdd=%YYYYmmdd: =%" echo "YYYYmmdd%YYYYmmdd%YYYYmmdd" rem 根據當前時間獲取,時分秒串 set hh=%time:~0,2% set mi=%time:~3,2% set ss=%time:~6,2% set "hhmiss=%hh%%mi%%ss%" set "hhmiss=%hhmiss: =%" echo "hhmiss%Time%hhmiss" echo %hhmiss% rem 把時間串中的:替換為0 set "hhmiss=%hhmiss::=%" rem 把時間串中的空格替換為0 set "hhmiss=%hhmiss: =%" rem 根據日期時間生成檔名稱,中間以HH區分日期和時間部分 set "filename=%YYYYmmdd%_%hhmiss%.log" echo %filename% md C:\Users\Administrator\Documents\adblogcat\%YYYYmmdd%\ adb logcat -v time > C:\Users\Administrator\Documents\adblogcat\%YYYYmmdd%\Android_logcat_%filename% pause
命令解析
輸出為:2016-11-09 15-40-16.txt
說明:
在windows 的cmd命令列視窗執行date命令後這個環境變數的值為
圖片描述
那麼如下的各個操作的意義如下:
%date:~0,4% 表示從左向右指標向右偏0位,然後從指標偏移到的位置開始提取4位字元,結果是2016(年的值)
%date:~5,2% 表示指標從左向右偏移5位,然後從偏移處開始提取2位字元,結果是11(月的值)
%date:~8,2% 表示指標從左向右偏移8位,然後從偏移處開始提取2位字元,結果是09(日的值)
再舉個例子:
%date:~5% 表示指標從左向右偏移5位,然後提取所有的值
%date:~-5% 表示指標反方向偏移,從最右端開始,偏移5位,然後從指標處提取左邊的所有數值。
再來看時間time變數的值:
圖片描述
那麼如下的各個操作的意義如下:
%time:~0,2% 表示從左向右指標向右偏0位,然後從指標偏移到的位置開始提取2位字元,結果是小時欄位數值
%time:~3,2% 表示指標從左向右偏移3位,然後從偏移處開始提取2位字元,結果是分鐘欄位數值
%time:~6,2% 表示指標從左向右偏移6位,然後從偏移處開始提取2位字元,結果是秒欄位數值
鳴謝
覺得寫的不錯,看了文章的,請幫忙關注公眾號-嵌入式Linux