Board logo

标题: 如何批量生成IP配置批处理并对应已有名单? [打印本页]

作者: pkto     时间: 2009-1-19 14:16    标题: 如何批量生成IP配置批处理并对应已有名单?

求助,单位有100多台机子联网,为加强管理,不使用自动获取地址的方式,需要给每台机子单独配置IP,但每个人手工配置又太慢,因此想用批处理来生成一批配置bat,然后对应已有名单,分发给每个人,到时只要此人执行一下批处理,便可配置结束。由于网络定期会调整,因此用此方式效率能够提高很多。具体需求如下(环境为cmd):
1、IP的bat标准配置为:
@ echo off
netsh -c interface ip set address name="本地连接" source=static addr=192.168.1.xx mask=255.255.255.0
netsh -c interface ip set address name="本地连接" gateway=192.168.1.254 gwmetric=0
netsh -c interface ip set dns name="本地连接" source=static addr=218.2.135.1 register=PRIMARY

以上的红xx,便是2~253的地址。要求在批处理执行后,自动生成一批(共252个)分别是从2~253的配置批处理,即2.bat  3.bat  4.bat~253.bat,每一个批处理,都对应一个与以上例子格式相同的相应IP配置批处理。


2、有一个现成的单位人员名单name.txt,按列排列:
赵一
钱二
张三
李四
王五
……
要求先前生成的IP配置批处理,能够遍历name.txt,然后按以上2.bat  3.bat  4.bat……依次以该名单的顺序,重新命名,生成2赵一.bat 3钱二.bat 4张三.bat……的IP配置批处理。


3、能否有一个转bat为exe(或com)的工具,通过批处理操作,批量将以上生成的IP配置批处理全部转化成可执行的文件?

谢谢各位版主和达人啦,帮偶个忙好不好?先提前给论坛里的朋友拜个早年啦!!

祝:

 论坛青松永驻
 版主事业兴旺
 坛友心想事成
 祖国繁荣昌盛

[ Last edited by pkto on 2009-1-19 at 23:05 ]
作者: yishanju     时间: 2009-1-19 14:57
你都知道设置设置IP用的命令了,代码完全可以自己写了,
用上FOR命令就是可以了。
作者: pkto     时间: 2009-1-19 15:55


  Quote:
Originally posted by yishanju at 2009-1-19 02:16 PM:
你都知道设置设置IP用的命令了,代码完全可以自己写了,
用上FOR命令就是可以了。

三个问题一并解决,偶哪有这个本事?偶也就是一菜鸟而已呀!而且是近40岁的老菜鸟……

[ Last edited by pkto on 2009-1-19 at 15:56 ]
作者: dato     时间: 2009-1-19 16:11
用modiip搜索论坛modiip是个很不错的根据mac来修改IP设定的软件,
以前我也在这里求助过如何用批处理快速扫描当前网络设定并生成mac.ini

http://www.cn-dos.net/forum/viewthread.php?tid=42427&page=1
作者: pkto     时间: 2009-1-19 17:06


  Quote:
Originally posted by dato at 2009-1-19 04:11 PM:
用modiip搜索论坛modiip是个很不错的根据mac来修改IP设定的软件,
以前我也在这里求助过如何用批处理快速扫描当前网络设定并生成mac.ini

[url]http://www. ...

我不需要扫描当前网络,而是事先已经知道配置,只是要把批处理的配置文件分发即可。
作者: terse     时间: 2009-1-19 17:49

@echo off&setlocal enabledelayedexpansion
set n=1
for /f "delims=" %%i in (name.txt) do (
   set/a n+=1
   (echo netsh -c interface ip set address name="本地连接" source=static addr=192.168.1.!n! mask=255.255.255.0
    echo netsh -c interface ip set address name="本地连接" gateway=192.168.1.254 gwmetric=0
    echo netsh -c interface ip set dns name="本地连接" source=static addr=218.2.135.1 register=PRIMARY
    )>>%%i!n!.txt
  )
pause

作者: pkto     时间: 2009-1-19 22:43
谢谢terse老大的代码,但是最后形成的文件却是 赵一2.txt钱二3.txt ,而不是需要的 2赵一.bat  3钱二.bat(当然扩展名不是问题,只要把>>%%i!n!.txt改成>>%%i!n!.bat即可),……

因此,偶重新调整了一下terse老大的代码:
@echo off&setlocal enabledelayedexpansion
set n=1
for /f "delims=" %%i in (name.txt) do (
   set/a n+=1
   (echo @ echo off
    echo netsh -c interface ip set address name="本地连接" source=static addr=192.168.1.!n! mask=255.255.255.0
    echo netsh -c interface ip set address name="本地连接" gateway=192.168.1.254 gwmetric=0
    echo netsh -c interface ip set dns name="本地连接" source=static addr=218.2.135.1 register=PRIMARY
   )>> !n!%%i.bat
  )
pause

这样就实现了偶第一、第二两个需要。

但是,还有第三个问题,能否有一个转bat为exe(或com)的工具,通过批处理操作,批量将以上生成的IP配置批处理全部转化成可执行的文件?
例如老K大大的批处理潜行者V6.0,能否实现批量转换批处理?且通过cmd命令实现

[ Last edited by pkto on 2009-1-20 at 00:20 ]
作者: yishanju     时间: 2009-1-20 11:25
试试不就知道了
作者: pkto     时间: 2009-1-20 13:15


  Quote:
Originally posted by yishanju at 2009-1-20 11:25 AM:
试试不就知道了

兄台,虽然感谢您回贴,但是也请在回贴的内容里加上些营养好不好?说实话,你的回贴,偶没有获得半点益处,哪怕是心情上的愉悦——纯粹是不疼不痒的水贴啊!还有,既然偶提出来要求,那必然是各方面都已经试过的,并且有疑问的……怀疑兄台的高级用户的积分,是灌水灌出来的……

[ Last edited by pkto on 2009-1-20 at 13:17 ]
作者: yishanju     时间: 2009-1-20 14:10
果然是高手,居然知道我是灌水混来的