window批處理bat命令

簡介

批處理文件(batch file)包含一系列 DOS命令,通常用於自動執行重複性任務。可用於簡化很多重複工作。類似於UnixShell腳本。
windows 下批處理文件的擴展名爲bat.

bat命令

具體查看某個命令的用法 dos下輸入 [com] + /? 即可
查看命令

ECHO @ REM

@ #關閉當前行回顯

echo on #從下一行開始,打開回顯
echo off #從下一行開始,關閉回顯
echo. #輸出一個”回車換行”,空白行
@echo on #@和echo結合使用,從本行開始,打開回顯

rem #起註釋作用不執行
@rem #@和rem結合,不回顯的註釋

測試echo

@REM test bat cmd
@echo
@echo on
@echo
echo.
REM this line show
@REM this line not show

@echo off 

setlocal enabledelayedexpansion

set min=5
set max=11
set str=abcd
set str2=abce
set str
echo %min% %max% !str!

echo

set 和變量引用

set 作用主要是設置/顯示變量

set #顯示所有可用變量
set p #顯示所有以p開頭的變量
set p=aa1bb1aa2bb2 #設置變量p爲 aa1bb1aa2bb2
set /a d=15 #設置d爲15,數值類型,/a參數時=後面的變量可以不加%直接飲用
set /p p=please input. # /p表示用戶輸入,please input爲提示文案
set d=#取消d變量
#變量的引用
%d% #用兩個%
!d! #使用了 setlocal enabledelayedexpansion

if 判斷

ifelse 結合用於一些條件判斷

@echo off
@REM 測試if語句
setlocal enabledelayedexpansion
set str=abcd
set str2=abce
echo %str% !str!

if /i !str! GTR !str2! (
    echo !str! great than !str2!
) else (
    echo !str! small than !str2!
)

for 循環

例如,求和 1…100
batfor set中變量引用使用%%var

@echo off
@REM 求和(1-100)
setlocal enabledelayedexpansion
set /a sum=0
for /l %%j in (1,1,100) do (
    set /a sum =!sum!+%%j
)
echo sum=!sum!

choice

choice 主要功能跟用戶交互。
使用此命令可以讓用戶輸入一個字符,從而運行不同的命令。
如果不跟參數,默認是 y/n
使用時應該加/c:參數,c:後應寫提示可輸入的字符,之間無空格。它的返回碼爲1234……

@REM 測試choice選擇
@echo off
setlocal enabledelayedexpansion
choice
@REM 應該從數值高處開始判斷
if errorlevel 2 goto noHandler
if errorlevel 1 goto yesHandler

:noHandler
echo your input is N
goto end
:yesHandler
echo your input is Y

:end
endlocal

pause

goto 和 標籤

上面的用例,使用了goto 和 標籤:yesHandler

goto #跳轉到指定的標籤
:yesHandler #名稱爲yesHandler的標籤

小技巧

阻塞一定的時間,bat沒有提供阻塞相應的方法,可以利用pingping超時解決。

ping -n 1 -w 200 192.0.2.2>nul #ping 命令阻塞 200ms -w爲超時時間單位ms, ip地址要填不存在的
ping -n 3  127.0.0.1>nul #ping 命令阻塞2s -n爲嘗試的次數,默認中間間隔1s
echo wait 2000ms--

其他變量和關鍵字

%random% #隨機數[0, 32767]
%errorlevel% #每個命令運行結束,可以用這個命令行格式查看返回碼,默認值爲0,一般命令執行出錯會設爲1
cls #清屏
pause #暫停命令
& #順序執行多條命令,而不管命令是否執行成功
&& #順序執行多條命令,當碰到執行出錯的命令後將不執行後面的命令
find “ok” c:test.txt && echo 成功
|| #順序執行多條命令,當碰到執行正確的命令後將不執行後面的命令
find “ok” c:test.txt || echo 不成功

示例應用,例如使用adb自動刷快手極速版

@echo off
setlocal enabledelayedexpansion
set min=10
set max=30
set /a mod=!max!-!min!+1
@REM 打開快手
adb shell am start -n com.kuaishou.nebula/com.yxcorp.gifshow.HomeActivity
@REM 暫停5秒
ping -n 5 127.0.0.1>nul
 
for /l %%i in (1,1,10000) do (
    set /a r=!random!%%!mod!+!min!
    @REM set  t=%time:~0,8%
    @REM echo !t!
    echo %%i:!r!
    ping -n !r! 127.0.0.1>nul
    @REM 先點擊
	adb shell input tap 590 1200
	@REM 等1秒
	ping -n 1 127.0.0.1>nul
	@REM 在滑動
    adb shell input swipe 600 1270 608 762
)

這裏介紹常用的bat命令,還有很多其他的bat命令,我們可以需要的時候查找。

參考資料

windows批處理命令詳解
adb控制手機屏幕滑動

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章