![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 15:30 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助!如何改这批处理实现不同计算机号写入指定网关 |
| 可打印版本 1,335 / 6 |
| 第1楼 capcom881 | 发表于 2006-12-04 07:08 |
| 新手上路 发帖 5 积分 11 | |
|
求助!如何改这批处理实现不同计算机号写入指定网关 注:这个批处理来自网络上!
在批处理文件的旁边在建一个 “config.ini ” 文件。 内容: ----------------------------------------------------------------- [ComputerName] NH005 NH006 NH007 NH008 NH009 ------------------------------------------------------------------ 粘贴到“记事本” 里, 另保存为 “config.ini ” 文件. 注意:字母一定要大写! 在批处理文件“GameUpdate.bat” 最后一行 写上: ---------------------------------------------------------------------------------------------------------- for /f "skip=1 tokens=1" %%N IN (\\FilmServer\GameUpdate\Config.ini) Do if %ComputerName%==%%N ( xcopy /s /e /d /y \\FilmServer\GameUpdate\劲乐团 D:\Games\劲乐团 xcopy /s /e /d /y \\FilmServer\GameUpdate\dhxy D:\Games\dhxy xcopy /s /e /d /y \\FilmServer\GameUpdate\"Legend of Mir" D:\Games\"Legend of Mir" ) Else ( @echo 本台机器今天不更新! ) Exit 如何修改上面的批处理实现根据机号改网关,如读取config.ini 文件内有 NH005 这个机号就执行这行命令netsh i i set address name="本地连接" gateway=192.168.0.254 gwmetric=0 |
|
| 第2楼 youxi01 | 发表于 2006-12-04 10:43 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
楼上的批处理貌似有点问题:即使那台机器要更新,如:NH007 ,但是它照样要提示不更新哦!
要检测本机是否需要更新,可以使用findstr 啊! 如: findstr " %ComputerName%" "\\FilmServer\GameUpdate\Config.ini">nul && netsh set address name......... |
|
| 第3楼 capcom881 | 发表于 2006-12-04 14:42 |
| 新手上路 发帖 5 积分 11 | |
Originally posted by capcom881 at 2006-12-3 06:08 PM: findstr " %ComputerName%" "c:\Config.ini">nul &&netsh interface ip set address name="本地连 接" gateway=192.168.0.254 gwmetric=0 我把路径改了C:\Config.ini 或按你原来的也是一样一闪而过,没有根据Config.ini里的计算机名去改网关 我自己刚学批处理,这也是在网上找来的,望这位人兄帮忙想想办法,在这先谢过了 |
|
| 第4楼 tghksj | 发表于 2006-12-04 14:49 |
| 社区乞丐 发帖 90 积分 -49 | |
|
我前天写的,不知道对你有没有用.
@ECHO OFF CLS ECHO "TGHKSJ.CMD" 版本20061130(以日期为版本号) 作者:tghksj 地址:http://w.vicp.net setlocal :VERSION ver | find /i "Windows XP" > nul IF NOT errorlevel 1 GOTO :START ECHO. ECHO. ECHO 此程序只在Windows XP操作系统下测试通过. ECHO 其他版本不能保证正常运行. GOTO :QUIT :START IF NOT "%~1"=="%*" GOTO :SYNTAX IF /I "%~1"=="/l" GOTO :LIST IF /I "%~1"=="/s" GOTO :SET GOTO :HELP :SYNTAX echo. echo. echo !!参数错误!! echo ________________ echo 不带参数直接运行本程序将显示帮助信息,并按提示操作. echo. GOTO :HELP ::::::::::获取MAC IP NAME并保存::::::::::::::::::::::::::::::::::::::::::::::::::↓ :LIST Find "%COMPUTERNAME%" "%~dp0"CONFIG.txt > NUL IF %errorlevel% == 0 GOTO :HAVELIST FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Physical Address"`) do set MAC=%%I FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "IP Address"`) do set IP=%%I FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Subnet Mask"`) do set MASK=%%I FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Default Gateway"`) do set GATEWAY=%%I FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "DNS Servers"`) do set DNS1=%%I FOR /F "skip=19 tokens=1 usebackq" %%I in (`ipconfig /all`) do set DNS2=%%I ECHO %MAC% %COMPUTERNAME% %IP% %MASK% %GATEWAY% %DNS1% %DNS2%>>%~dp0CONFIG.txt IF /I "%~1"=="/l" EXIT ECHO 信息收集完毕并保存到 %~dp0CONFIG.txt GOTO :QUIT ::::::::::获取MAC IP NAME并保存::::::::::::::::::::::::::::::::::::::::::::::::::↑ :::::::::::::::::::::::::::::::::::::::::::::::::::::CONFIG.txt::::::示例::::::::↓ ::::%%I %%j %%k %%l %%m %%n %%o ::::MAC COMPUTERNAME IP MASK GATEWAY DNS1 DNS2 ::::00-E0-4C-49-83-A9 t21 222.173.24.66 255.255.255.192 222.173.24.65 219.146.0.130 219.150.32.132 :::::::::::::::::::::::::::::::::::::::::::::::::::::CONFIG.txt::::::示例::::::::↑ :::::识别MAC,并据此进行继续操作::::::::::::::::::::::::::::::::::::::::::::::::::↓ :SET FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Physical Address"`) do set MAC=%%I find /i "%MAC%" "%~dp0CONFIG.txt" > NUL IF %errorlevel% == 1 GOTO :NO_LIST FOR /F "tokens=2,3,4,5,6,7" %%j in ('find /i "%MAC%" "%~dp0CONFIG.txt"') do ( SET TCOMPUTERNAME=%%j SET IP=%%k SET MASK=%%l SET GATEWAY=%%m SET DNS1=%%n SET DNS2=%%o ) REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v "Hostname" /t REG_SZ /d %TCOMPUTERNAME% /f REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v "NV Hostname" /t REG_SZ /d %TCOMPUTERNAME% /f netsh interface ip set address name="本地连接" source=static addr=%IP% mask=%MASK% gateway=%GATEWAY% gwmetric=1 netsh interface ip set dns name="本地连接" source=static addr=%DNS1% register=both netsh interface ip add dns name="本地连接" addr=%DNS2% GOTO :SHUTDOWN :::::识别MAC,并据此进行继续操作::::::::::::::::::::::::::::::::::::::::::::::::::↑ :::::::::::::::::::::::重新启动计算机::::::::::::::::::::::::::::::::::::::::::::↓ :SHUTDOWN IF /I "%~1"=="/s" GOTO :SHUT_Y GOTO :SHUT_W :SHUT_Y shutdown -r -t 0 EXIT :SHUT_W echo. echo 提示: echo 信息设置完毕.建议按"R"重新启动.(推荐!) echo ------------------------------- set /P CHS= ? if /I "%CHS%"=="R" goto :SHUT_Y if /I "%CHS%"=="Q" goto :QUIT CLS goto :SHUT_W :::::::::::::::::::::::重新启动计算机::::::::::::::::::::::::::::::::::::::::::::↑ :::::::::::::::::::::::帮助信息和手动选择::::::::::::::::::::::::::::::::::::::::↓ :HELP echo. echo -= 帮助 =- echo ------------------------------------------------------------------ echo. echo 可用参数: echo. echo /help 显示此帮助信息. echo /l 收集客户端信息.信息包括MAC地址、计算机名、IP、子网掩码、网关、DNS。 echo /s 自动设置客户机MAC地址、计算机名、IP、子网掩码、网关、DNS。 echo. echo 使用方法: echo 任选一台主机为服务器,服务器任意路径新 echo 建任意名文件夹设置"完全共享",存放此程序. echo 收集信息时客户机执行: echo \\服务器名\本程序所在文件夹共享名\TGHKSJ.CMD /l echo 更改可户端客户机执行: echo \\服务器名\本程序所在文件夹共享名\TGHKSJ.CMD /s echo 或者手动执行此程序,按提示操作。 echo. echo ----------------------------------------------------------------- set /P CHS= ? if /I "%CHS%"=="L" goto :LIST if /I "%CHS%"=="S" goto :SET if /I "%CHS%"=="Q" goto :QUIT CLS goto :HELP :::::::::::::::::::::::帮助信息和手动选择::::::::::::::::::::::::::::::::::::::::↑ :::::::::::::::::::::::重复收集提示::::::::::::::::::::::::::::::::::::::::::::::↓ :HAVELIST IF /I "%~1"=="/l" EXIT ECHO. ECHO. ECHO. ECHO 提示: ECHO 本机信息先前已经收集过. ECHO. GOTO :HELP :::::::::::::::::::::::重复收集提示::::::::::::::::::::::::::::::::::::::::::::::↑ :::::::::::::::::::::::无信息记录提示::::::::::::::::::::::::::::::::::::::::::::↓ :NO_LIST IF /I "%~1"=="/S" EXIT ECHO. ECHO. ECHO. ECHO 提示: ECHO 没有找到本机信息记录 ECHO 请检查%~dp0CONFIG.txt. ECHO. GOTO :HELP :::::::::::::::::::::::无信息记录提示::::::::::::::::::::::::::::::::::::::::::::↑ :::::::::::::::::::::::提示退出::::::::::::::::::::::::::::::::::::::::::::::::::↓ :QUIT echo ________________________________________________________ echo. echo http://w.vicp.net echo ________________________________________________________ echo echo ------------------------------------------------------ echo. if /I "%1"=="" pause>NUL :::::::::::::::::::::::提示退出::::::::::::::::::::::::::::::::::::::::::::::::::↑ |
|
| 第5楼 capcom881 | 发表于 2006-12-04 14:58 |
| 新手上路 发帖 5 积分 11 | |
|
在这先谢过了,太复杂我看不明,我才刚开始学习批处理,很多地方都没搞清楚!我只是想用简单几段命令读取Config.ini里写的计算机号,然后相同就执行写网关的命令!
|
|
| 第6楼 tao0610 | 发表于 2006-12-04 15:34 |
| 高级用户 发帖 218 积分 579 | |
|
你上面的应该是一条命令断开了!
[ Last edited by tao0610 on 2006-12-4 at 03:51 PM ] |
|
| 第7楼 capcom881 | 发表于 2006-12-04 18:11 |
| 新手上路 发帖 5 积分 11 | |
|
上面的都试过了~是不是windows2003系统执行无效呢~不解中!
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |