中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请大家帮个忙写个批处理,第一个写出来送5个Q币
作者:
标题: 请大家帮个忙写个批处理,第一个写出来送5个Q币 上一主题 | 下一主题
wqonewq
初级用户





积分 20
发帖 8
注册 2008-4-14
状态 离线
『楼 主』:  请大家帮个忙写个批处理,第一个写出来送5个Q币

我是新手,请大家帮个忙写个批处理,第一个写出来的我给他QQ充5个Q币
我知道高手不在乎Q币,也是我一点小意思

批处理的意思如下,


先检测本机的MAC
然后检测C:\mac.txt有没有本机MAC(注mac.txt里面有100条MAC信息)
如果有网关改成192.168.0.250
如果没有网关改成192.168.0.1

2008-4-14 18:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:  试试这个:

不适合多网卡
@echo off
for /f "delims=:" %%i in ('ipconfig ^| findstr "Ethernet"') do set var=%%i
for /f "delims=: tokens=2" %%i in ('ipconfig /all ^| findstr "Physical"') do (
    set str=%%i
    call :lp %%str%%
)
pause&goto :eof
:lp
find "%str%" mac.txt>nul 2>nul
if %errorlevel% equ 1 (netsh interface ip set address "%var:~17%" gateway=192.168.0.1 gwmetric=1) else (netsh interface ip set address "%var:~17%" gateway=192.168.0.250 gwmetric=1)
goto :eof
[ Last edited by zw19750516 on 2008-4-14 at 07:54 PM ]



批处理之家新域名:www.bathome.net
2008-4-14 19:35
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
wqonewq
初级用户





积分 20
发帖 8
注册 2008-4-14
状态 离线
『第 3 楼』:  你QQ多少

你QQ多少 如果好用我给你充进去

2008-4-14 19:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 4 楼』:  

不用了,好不好用都告诉我就可以了,不好用我再改。 



批处理之家新域名:www.bathome.net
2008-4-14 19:44
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
wqonewq
初级用户





积分 20
发帖 8
注册 2008-4-14
状态 离线
『第 5 楼』:  2楼的我试过了,行是行,

2楼的我试过了,行是行,但有必须在没有配置网关的前提下,如果网关存在的话,就不能配置了

2008-4-14 19:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 6 楼』:  

你没配置网关那设定网关地址有何用?

2008-4-14 19:53
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 7 楼』:  

可以的,开始我写错了,现在已将add改成set了,没问题了。



批处理之家新域名:www.bathome.net
2008-4-14 19:54
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
tvzml
初级用户





积分 157
发帖 67
注册 2007-5-13
状态 离线
『第 8 楼』:  这是我重新编译过的,根据MAC修改IP,为我所用中。

注意:多网卡识别未加入,因为多网卡环境不多,所以没有加,我想只要努力,一定可以为我所用的。

@echo off
title AutoIP
ping -n 1 192.168.0.252>nul||goto check_go
if exist \\192.168.0.252\data\ArpBinding.ini COPY \\192.168.0.252\data\ArpBinding.ini %CD%\ArpBinding.ini /y & goto check_go
if exist wget.exe wget -q -N ftp://192.168.0.252/data/ArpBinding.ini

:check_go
cls
set zwym=255.255.255.0
set Gateway=192.168.0.1
set dns1=220.189.127.106
set dns2=192.168.0.1
set dns3=220.189.127.108
Set PC_IP=0.0.0.0
Set IP=0.0.0.0
set mac=00-00-00-00-00-00
echo %time:~0,8% 检测网络设备...
for /f "tokens=16" %%i in ('ipconfig /all^| find /i "Host Name"') do set pcName=%%i
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set PC_IP=%%i
for /f "tokens=12" %%i in ('ipconfig /all^| find /i "Physical Address"') do set mac=%%i
::读取网维大师ArpBinding.ini
for /f "tokens=1 delims==" %%i in ('type ArpBinding.ini^|find /i "%mac%"') do set IP=%%i
::读取普通的ARP绑定批处理文件
::for /f "tokens=3" %%i in ('find /i "%mac%" "mac.bat"') do set IP=%%i

if %IP%==0 goto ipend
set Ipx=%IP:~10,3%
if %Ipx% lss 2   goto Ipx_end
if %Ipx% geq 254 goto Ipx_end
if %Ipx% lss 10  set a=00& goto Ipx_config
if %Ipx% lss 100 set a=00& set /a a=%a%-0& goto Ipx_config
if %Ipx% lss 255 set a=& goto Ipx_config
:Ipx_config
set Ipx_reg=%a%%Ipx%
set LISTPCNAME=A%Ipx_reg%
set mac1=%mac:~0,2%
set mac2=%mac:~3,2%
set mac3=%mac:~6,2%
set mac4=%mac:~9,2%
set mac5=%mac:~12,2%
set mac6=%mac:~15,2%
set wmicMac=%mac1%:%mac2%:%mac3%:%mac4%:%mac5%:%mac6%

::echo %time:~0,8% 本机 name:%pcName% ^| Mac:%Mac% ^| IP:%PC_IP%
::echo %time:~0,8% 列表 name:%LISTPCNAME% ^| Mac:%Mac% ^| IP:%ip%

if %pcName%==%LISTPCNAME% goto CHECKIP
WMIC computersystem where Name="%pcName%" call Rename Name="%LISTPCNAME%" >nul
reg add HKLM\system\currentcontrolset\control\computername\computername\ /v computername /t reg_sz /d "%LISTPCNAME%" /f >nul
reg add HKLM\system\currentcontrolset\services\tcpip\Parameters\ /v "NV Hostname" /t reg_sz /d "%LISTPCNAME%" /f >nul
echo Windows Registry Editor Version 5.00 >%Ipx_reg%.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] >>%Ipx_reg%.reg
echo "VirtualNetworkNumber"=dword:00000%Ipx_reg% >>%Ipx_reg%.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NwlnkIpx\Parameters] >>%Ipx_reg%.reg
echo "VirtualNetworkNumber"=dword:00000%Ipx_reg% >>%Ipx_reg%.reg
regedit /s %Ipx_reg%.reg
del %Ipx_reg%.reg

:CHECKIP
if %PC_IP%==%IP% goto IP1~IP2
echo %time:~0,8% 正在设置本机IP...请稍候
WMIC NICCONFIG WHERE MACAddress="%wmicMac%" call EnableStatic("%ip%"),("%zwym%") >nul
WMIC NICCONFIG WHERE MACAddress="%wmicMac%" call SetGateways("%Gateway%") >nul
WMIC NICCONFIG WHERE MACAddress="%wmicMac%" call SetDNSServerSearchOrder("%dns1%", "%dns2%", "%dns3%") >nul
echo %time:~0,8% 本机IP设置成功!
for /f "tokens=2 delims=&" %%i in ('devcon find pci\* ^| findstr "Ethernet"') do devcon DISABLE *%%i*> nul
for /f "tokens=2 delims=&" %%i in ('devcon find pci\* ^| findstr "Network"') do devcon DISABLE *%%i*> nul
for /f "tokens=2 delims=&" %%i in ('devcon find pci\* ^| findstr "Ethernet"') do devcon ENABLE *%%i*> nul
for /f "tokens=2 delims=&" %%i in ('devcon find pci\* ^| findstr "Network"') do devcon ENABLE *%%i*> nul
echo %time:~0,8% 正在重启网卡...请稍候
ping -n 5 127.1>nul
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set PC_IP=%%i
echo %time:~0,8% IP:%PC_IP%
set m=31
call :echo

:IP1~IP2
echo %time:~0,8% 检测到需设置的IP信息与当前使用的相同,程序退出!
goto  ipend

:echo
set /a m-=1
echo %time:~0,8% 剩余 %m% 秒后重启系统!
ping -n 2 127.1>nul
if %m% lss 1 shutdown -r -t 0 && goto ipend
goto echo

:ipend

[ Last edited by tvzml on 2008-4-14 at 09:21 PM ]

2008-4-14 21:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: