批處理獲取系統安裝時間/系統開機時間/電腦喚醒時間及開機使用時間(三)打卡總結

所用到的DOS知識,自己理解,非官方。
  1. wevtutil qe system /c:1000 /rd:true /f:text >d:\log.txt qe=query-events 從日誌或日誌文件中查詢事件 .system爲系統日誌。/c:讀取的最大條數。 /rd:讀取方向,true先看到時間新的。/f:保存文件格式。xml或文本。詳細用法見官方:https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/wevtutil#BKMK_examples
  2. findstr /n “Power-Troubleshooter” d:\log.txt >d:\aaa.txt 讀取aaa.txt文件中所有包含Power-Troubleshooter的行,不可以只讀取單行。/n打印每個匹配行的行號。詳細見:https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/findstr
  3. setlocal enabledelayedexpansion 啓用延遲環境變量擴展。詳見:https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/setlocal
  4. for /f “tokens=1,2 delims=:” %%i in (d:\bbb.txt) do set var=%%i /f最強大的參數,用的最多,但不知道怎麼用。 tokens 分幾段,delims 分隔標準可以用時寫多個,如delims=/,",代碼就會按/,"按地全部分開,%%i,i是什麼都行,1是i,2是j,以此類推。 (d:\bbb.txt) 括號中的內容單引號、雙引號或者不用引號是不一樣的,沒記住區別。
  5. set /a m+=1& if !m!==1 (echo %%j>d:\bbb.txt)) /a後面的式子會計算,否則不計算。在原代碼行中的作用:每迭代一次,m加1,取後顯示的只有m爲1的內容,效率很低,因爲就算只找第一行,代碼也會把全部行跑完。 !m! 也是變量,但此只只能用!,不可以用其他。
  6. set wtime_m=%time0:~5,2%%time0:~5,2%中的波浪線表示從變量time0中忽略5個字符,讀取2個。
  7. 長行跨行寫的時候,前一行要加^.
  8. 批處理的註釋爲兩個冒號::。
  9. if %b_wtime% LEQ 0 (echo 電腦使用時間爲:%n_wtime%分鐘。) 判斷執行內容必須放在括號內。LEQ爲比較運算符的小於,GTR爲大於。
  10. 在for內的變量爲雙前百分號:%%a,在其他地方是前後百分號:%a%
  11. | & || &&和python的一樣。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章