[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] [已解决]批处理如何让变量自动递增?

本帖最后由 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=

这里的随机不知道怎么用
1

评分人数

    • Batcher: 请编辑自己的帖子,把代码放到code标签里面 ...PB -2

你这里似乎有几个问题了,分开来发好些吧!
上面的代码是网络克隆时用到的,运行时要输入 go x 回车,这里的X是一个变量,我现在不想手动输入,我想让它每运行一次自动递加1,比如说我输入 go 3 回车后结果,第一行和最后一行不管它

其实,这里你没必要一个一个数字去输的,比如,要colone从1~255的IP地址,可以这样:
命令行下:
for /l %i in (1 1 255) do go %i

TOP

呵呵,写完了,才弄明白楼主的意思

你是不是想 colone 第一台机器后(设置IP为:192.168.2.3后)

Wattcp.cfg中
IP=192.168.2.3自动转为:IP=192.168.2.4啊?

TOP

楼主应该是这个意识,相当于计算批处理运行的次数。
每运行一次,就加1
:
  1. @echo off
  2. for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%~nx0"') do set /a num=%%i-1
  3. for /f "skip=%num% delims=" %%a in ('type "%~nx0"') do (
  4.   for /f "delims= " %%b in ("%%a") do if not "%%b"==":" echo\>>"%~nx0"
  5.   for %%b in (%%a) do set /a %%b+=1
  6. )
  7. set /a :+=1
  8. set/p=: <nul>>"%~nx0"
  9. :: 以下为要运行的代码。
  10. cd ghost
  11. if exist WATTCP.CFG del WATTCP.CFG >nul
  12. echo IP=192.168.2.%:%> Wattcp.cfg
  13. echo NETMASK=255.255.255.0>> Wattcp.cfg
  14. echo GATEWAY=192.168.2.251>> Wattcp.cfg
  15. ghost -ja=yx
  16. exit
复制代码

[ 本帖最后由 随风 于 2008-1-7 00:01 编辑 ]
技术问题请到论坛发帖求助!

TOP

时隔3年,再来回贴,3年前的东西现在早已能看懂,但现在我还是菜啊!

TOP

返回列表