背景
启动32个putty.exe,其参数中的port是从10001开始的,并且要求一个启动起来之后再启动另外一个,等待全部起来后在杀死所有的putty.exe
set i=0
set ip=192.168.1.32
set port=0
:loop
set /a i=%i%+1
set /a port=%i%+10000
if %i% GTR 32 (
goto:over
) else (
echo ++++++++++++++++++++++++++++++++++++cur start port %port% process +++++++++++++++++++++++++++++++++++++++++++
echo port=%port%
start /b C:\Users\TXK\Desktop\putty.exe -ssh -l dd -pw password -P %port% %ip%
::ping 127.0.0.1-n 1 -w 120000 > nul
if %i% GTR 20 (
for /l %%i in (0,1,15000) do echo %%i>nul
) else (
for /l %%i in (0,1,10000) do echo %%i>nul
)
)
goto:loop
:over
echo over
for /l %%i in (0,1,10000) do echo %%i>nul
TASKKILL /F /IM putty.exe /T
pause
注意
set /a 表示指定=号右边的字符串被评估为数值表达式
start /b表示后台启动,否则bat阻塞直到第一个启动完成后才启动第二个
TASKKILL /F /IM putty.exe /T杀死所有的putty.exe
/F表示强制杀死
/IM表示要杀死的程序名称
/T表示连同子进程一起杀死
for /l %%i in (0,1,15000) do echo %%i>null表示延时,因为bat中没有像linux下的sleep的延时函数。
提示
如果对bat中任何一个命令不熟悉直接在命令中敲入 “命令/?”
例如:
set/?表示查看set帮助文档