1. 程式人生 > >adb 抓取日誌到指定檔案,檔案命名為當前電腦時間

adb 抓取日誌到指定檔案,檔案命名為當前電腦時間

需求產生原因

我們儲存日誌的時候,需要把日誌檔名命名為當前的系統時間,方便我們以後檢視日誌。

命令如下

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