标题: [数值计算] [已解决]批处理如何让变量自动递增? [打印本页]
作者: lovealei 时间: 2008-1-6 21:58 标题: [已解决]批处理如何让变量自动递增?
本帖最后由 lovealei 于 2011-8-22 19:37 编辑
cd ghost
if exist WATTCP.CFG del WATTCP.CFG >nul
echo IP=192.168.2.%1> Wattcp.cfg
echo NETMASK=255.255.255.0>> Wattcp.cfg
echo GATEWAY=192.168.2.251>> Wattcp.cfg
ghost -ja=yx
上面的代码是网络克隆时用到的,运行时要输入 go x 回车,这里的X是一个变量,我现在不想手动输入,我想让它每运行一次自动递加1,比如说我输入 go 3 回车后结果,第一行和最后一行不管它
IP=192.168.2.3
NETMASK=255.255.255.0
GATEWAY=192.168.2.251
可不可以读取wattcp.cfg 这个文件中的第一行最后一个数字,让它加1 这样就可以放在 Autoexec.bat 下面不用手动了
现在还有一段,不过我看不懂意思,
random 1 254|nset random1=$1 >nul
echo IP=192.168.2.%random1%> Wattcp.cfg
echo NETMASK=255.255.255.0>> Wattcp.cfg
echo GATEWAY=192.168.2.1>> Wattcp.cfg
set random1=
这里的随机不知道怎么用
作者: youxi01 时间: 2008-1-6 22:09
你这里似乎有几个问题了,分开来发好些吧!
上面的代码是网络克隆时用到的,运行时要输入 go x 回车,这里的X是一个变量,我现在不想手动输入,我想让它每运行一次自动递加1,比如说我输入 go 3 回车后结果,第一行和最后一行不管它
其实,这里你没必要一个一个数字去输的,比如,要colone从1~255的IP地址,可以这样:
命令行下:
for /l %i in (1 1 255) do go %i
作者: youxi01 时间: 2008-1-6 22:20
呵呵,写完了,才弄明白楼主的意思
你是不是想 colone 第一台机器后(设置IP为:192.168.2.3后)
Wattcp.cfg中
IP=192.168.2.3自动转为:IP=192.168.2.4啊?
作者: 随风 时间: 2008-1-7 00:00
楼主应该是这个意识,相当于计算批处理运行的次数。
每运行一次,就加1
:- @echo off
- for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%~nx0"') do set /a num=%%i-1
- for /f "skip=%num% delims=" %%a in ('type "%~nx0"') do (
- for /f "delims= " %%b in ("%%a") do if not "%%b"==":" echo\>>"%~nx0"
- for %%b in (%%a) do set /a %%b+=1
- )
- set /a :+=1
- set/p=: <nul>>"%~nx0"
- :: 以下为要运行的代码。
- cd ghost
- if exist WATTCP.CFG del WATTCP.CFG >nul
- echo IP=192.168.2.%:%> Wattcp.cfg
- echo NETMASK=255.255.255.0>> Wattcp.cfg
- echo GATEWAY=192.168.2.251>> Wattcp.cfg
- ghost -ja=yx
- exit
复制代码
[ 本帖最后由 随风 于 2008-1-7 00:01 编辑 ]
作者: lovealei 时间: 2011-8-22 19:36
时隔3年,再来回贴,3年前的东西现在早已能看懂,但现在我还是菜啊!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |