码迷,mamicode.com
首页 > 其他好文 > 详细

批处理--工作当中获取本机ip地址然后执行一个循环启动脚本

时间:2015-04-14 18:05:34      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

<pre name="code" class="cpp"><span style="font-size:18px;">goto :main


rem +++++++获取本机ip++++++++++++++++++++++++++++++++++++
:get_local_ip
rem 注意 不要照搬某些人的文章,如果你把函数写成setlocal   dosomething endlocal 这种结构,那么在这段代码中返回值无法赋值,你得到的返回ip为""
@echo off
echo 开始获取本机ip....................

for /f "delims=:" %%i in ('ipconfig ^| findstr /N "本地连接"') do (
	set /a op_line=%%i
	goto :for_break1
)
:for_break1

set ip_addr=""
set /a op_num=%op_line%

rem 启用延迟变量扩展 启用后 for里面一定要用双!不要用双%啊 这是我发现很多讲延迟扩展的文章都没说的,我看了他们的文章根本不行,必须用! 自己血的试验结果,你问我为何?鬼知道这该死的批处理语法。。。
setlocal enabledelayedexpansion
rem skip=%op_line%表示跳过前面%op_line%行,直接从%op_line%+1行开始处理 delims=表示读取文件时是按照那个字符来分割行的,这里默认使用换行符,也可以比如delims=+表示每次碰到+号时就作为一行交给for内部代码处理
for /f "skip=%op_line% delims=" %%i in (1.tmp) do (
rem 数字操作 用 /a的set
	set /a op_num+=1
rem 这里 op_line可以用%或者!围起来都行,因为它本身没有被改变的逻辑 因为%表示不延迟扩展,那么该变量在for之前就已经获得了 for的整个代码块被认为是一条代码,那么用%的变量会在for之前被替换上for之前的值,这样for内部就好像成了常量一般,无法改变for之前定义的变量
	if !op_num! gtr %op_line% ( 
		set tmp_i=%%i
		echo !tmp_i! | findstr "[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"
		
		rem 发现该行为地址行
		if "!errorlevel!" == "0" (
			:loop_search_addr_pos			
rem 表示<span style="color:#ff0000;">截</span>取掉第一个字符 !tmp_i:~0,3!表示<span style="background-color: rgb(255, 0, 0);">获</span>取前三个字符
			set tmp_i=!tmp_i:~1!
			echo !tmp_i! | findstr "^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9]*[0-9]"  >null
			if  !errorlevel! equ 0 (
				set ip_addr_local=!tmp_i!
				goto :for_break2
			)  else (
				goto :loop_search_addr_pos
			)
		) 
	)
)
setlocal disableextensions
:for_break2</span>
rem 返回值赋值
set "%~1=%ip_addr_local%"
goto :exec_code

:main
call :get_local_ip ip_addr
:exec_code
echo local_ip=%ip_addr%
pause</span>
rem 循环从 (开始值,递增值,最后值) 进行调用
for /l %%i in (10000001,1,10000010) do start HostClientTest.exe %ip_addr%  0 %%i 192.168.12.63 30004</span>




批处理--工作当中获取本机ip地址然后执行一个循环启动脚本

标签:

原文地址:http://blog.csdn.net/wangxugangzy05/article/details/45044263

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!