标题: 如何批量生成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
果然是高手,居然知道我是灌水混来的