标题: [已结]变量请教:根据IP地址判断IP所在机分辩率大小
[打印本页]
作者: jycel
时间: 2008-10-28 17:58
标题: [已结]变量请教:根据IP地址判断IP所在机分辩率大小
::根据批IP地址判断IP所在机分辩率大小!
上面检测得到myip值,假如就下面一句设定的吧!
set /a myip=16
if "%myip%"=="11" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="12" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="13" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="14" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="15" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="16" ( goto 1024 ) else ( goto kshy )
:1024
SETRES h1024 v768 b32 f85
goto setup
:1440
SETRES h1440 v900 b32 f75
goto setup
:setup
::跟后面命令
在上面,myip为11还可以正常运行,如果为12或12以后的就不正常,直接跳到1440这句去了!应该是变量的问题,本人刚学批处理还不太清楚请指点下
───────────────── 版务记录 ─────────────────
执行:HAT
操作:[2008-10-28]在帖子标题中增加搜索关键字;代码加code标签
说明:原标题"[求助]变量请教"不利于论坛搜索
处罚:扣除2点积分
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{32667}[愤怒]那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────
[
Last edited by HAT on 2008-10-29 at 15:41 ]
作者: jycel
时间: 2008-10-28 18:05
以下是脚本全部!IPX号那一栏根本没用!不知道从这行判断ComputerCfg.txt能否得行(把IPX行全换成1024或1440)
@echo off
color 9f
MODE CON cols=53 lines=25
Rasdial Router /DISCONNECT
cls
title 自动改IP,计算机名,批处理
echo ---------------------------------------------------
echo 正在读取信息……
echo ---------------------------------------------------
rem :: 设置子网掩码 ::
set mask=255.255.255.0
rem :: 设置子网关 ::
set gateway=192.168.0.1
rem :: 设置首选DNS ::
set DNS1=218.6.200.139
rem :: 设置备用DNS ::
set DNS2=202.98.96.68
rem ---------------------------------------------------
rem 输出客户机列表
rem ---------------------------------------------------
if exist config.cfg del config.cfg
echo [计算机名] [Mac地址] [IP地址] [IPX编号] >config.cfg
echo 001 00-E0-61-15-C5-43 11 001 >>config.cfg
echo 002 00-E0-61-16-12-01 12 002 >>config.cfg
echo 003 00-E0-61-15-C8-DC 13 003 >>config.cfg
echo 004 00-E0-61-15-C7-4E 14 004 >>config.cfg
echo 005 00-E0-61-16-11-EC 15 005 >>config.cfg
……
……
echo 013 00-E0-61-16-15-AB 23 013 >>config.cfg
echo 120 00-1D-0F-22-EF-28 130 120 >>config.cfg
echo 121 00-1D-0F-23-C9-16 131 121 >>config.cfg
echo 122 00-1D-0F-22-F1-5C 132 122 >>config.cfg
rem ---------------------------------------------------
rem 读取IPConFig
rem ---------------------------------------------------
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >ipconfig.txt
if exist phyaddr.txt del phyaddr.txt
find "Physical Address" ipconfig.txt >phyaddr.txt
for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set strMac=%%M
echo 读取MAC地址: %strMac%
echo 读取完成...
echo --------------------------------------------------
echo 当前应用设置:
echo --------------------------------------------------
find "%strMac%" Config.cfg >ComputerCfg.txt
for /f "skip=2 tokens=1" %%N in (ComputerCfg.txt) do set pcname=%%N
echo 本机计算机名: A%pcname%
for /f "skip=2 tokens=3" %%I in (ComputerCfg.txt) do set myip=%%I
echo 本机IP地址: 192.168.0.%myip%
echo 本机IPX地址: %myip%
echo 子网掩码: %mask%
for /f "skip=2 tokens=2" %%M in (ComputerCfg.txt) do set mymac=%%M
echo 设定MAC地址: %mymac%
echo 正在为A%pcname%号设置机号IP/DNS/MAC请稍候......
echo ---------------------------------------------------
echo Windows Registry Editor Version 5.00>ComputerName.reg
echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam]>>ComputerName.reg
echo @="A%pcname%">>ComputerName.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName]>>ComputerName.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName]>>ComputerName.reg
echo "ComputerName"="A%pcname%">>ComputerName.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName]>>ComputerName.reg
echo "ComputerName"="A%pcname%">>c:\TempInfo.reg>>ComputerName.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog]>>ComputerName.reg
echo "ComputerName"="A%pcname%">>ComputerName.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName]>>ComputerName.reg
echo "ComputerName"="A%pcname%">>ComputerName.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]>>ComputerName.reg
echo "NV Hostname"="A%pcname%">>ComputerName.reg
echo "Hostname"="A%pcname%">>ComputerName.reg
echo [HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\ShellNoRoam]>>ComputerName.reg
echo @="A%pcname%">>ComputerName.reg
regedit /s ComputerName.reg
del /q ComputerName.reg
echo Windows Registry Editor Version 5.00>ipx.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\NwlnkIpx\Parameters]>>ipx.reg
echo "VirtualNetworkNumber"=dword:%myip% >>ipx.reg
regedit /s ipx.reg
del /q ipx.reg
netsh interface ip set address name="本地连接" source=static addr=192.168.0.%myip% mask=%mask% gateway=%gateway% gwmetric=1 >nul
netsh interface ip set dns name="本地连接" source=static addr=%DNS1% register=PRIMARY >nul
netsh interface ip add dns name="本地连接" addr=%DNS2% >nul
netsh interface ip set wins name="本地连接" source=static addr=none >nul
echo ---------------------------------------------------
echo 【%pcname%】号机配置如下:
echo ---------------------------------------------------
echo 本机计算机名:A%pcname%
echo 本机IP地址为:192.168.0.%myip%
echo 本机IPX地址: %myip%
echo 本机子掩网码:%mask%
echo 本机网关地址: %gateway%
echo 本机MAC地址:%strMac%
echo 首选DNS服务器:%DNS1%
echo 备用DNS服务器:%DNS2%
echo ---------------------------------------------------
::根据批IP地址判断IP所在机分辩率大小!
if "%myip%"=="53" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="54" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="55" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="56" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="57" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="58" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="59" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="60" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="61" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="62" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="63" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="64" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="103" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="104" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="105" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="106" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="107" ( goto 1024 ) else ( goto kshy )
if "%myip%"=="108" ( goto 1024 ) else ( goto kshy )
:1024
SETRES h1024 v768 b32 f85
::如果不在以上IP内则按做系统机分辩率!不做修改!
:kshy
del /q ComputerCfg.txt
del /q config.cfg
del /q ipconfig.txt
del /q phyaddr.txt
del /q devcon.exe
del /q SETRES.exe
echo y|del "%userprofile%\「开始」菜单\程序\启动"\*.*
echo 正在重启网卡,请稍等......
devcon disable *DEV_8169*
devcon enable *DEV_8169*
title Login……
MODE CON cols=13 lines=4
for /l %%a in (10,-1,0) do cls&echo/&echo %%a&ping -n 2 127.1>nul
c:\KSHY\setup.exe /install /password:123456 /protect:CDE
del %0
[
Last edited by jycel on 2008-10-28 at 18:25 ]
作者: HAT
时间: 2008-10-28 21:40
标题: Re 1楼
你的if...else...有逻辑错误吧,改成这样行么?
@echo off
set /a myip=16
if %myip% geq 11 (
if %myip% leq 16 (
goto :1024
) else (
goto :kshy
)
) else (
goto :kshy
)
:1024
SETRES h1024 v768 b32 f85
goto setup
:1440
SETRES h1440 v900 b32 f75
goto setup
:setup
::跟后面命令
:kshy
作者: jycel
时间: 2008-10-28 22:10
这只是一组数据!如果是IP11-255内判断呢版主?
作者: HAT
时间: 2008-10-29 10:32
你把3楼的16改成225不行吗!楼主?
作者: jycel
时间: 2008-10-29 12:28
我的意思是:
IP:11-52 103-108为液晶
IP:53-64 109-132为纯平
要通过前面检测出%myip%值去执行相对应的命令!
而不是直接给出%myip%值 来判断,如果直接给出来也可以,把他放在二个配置文件中来判断!版主再帮我分析分析哈!
作者: dato
时间: 2008-10-29 13:23
偶也一直无法借助psexec来远程执行这些调整分辩率的程序.
但是可以有其它变通方法就是预先在母盘里将一些封装的cmd转成.exe放置于用户登录阶段执行,下次遇到这种问题只要用psexec将相应的.exe覆盖重启就OK了
作者: jycel
时间: 2008-10-29 13:37
改了一个方法测试
echo 004 00-E0-61-15-C7-4E 14 17 >>config.cfg
echo 005 00-E0-61-16-11-EC 15 19 >>config.cfg
for /f "skip=2 tokens=4" %%l in (ComputerCfg.txt) do set fbldx=%%l
echo 设定分辩率大小: %fbldx%
后面通过判断:%fbldx%如果为17测跳至:17如果为19则跳至:19
作者: HAT
时间: 2008-10-29 14:06
标题: Re 7楼
是这个意思么?
@echo off
for /f "tokens=15" %%a in ('ipconfig^|findstr /i /c:"IP Address"') do set IP=%%a
for %%a in (%IP%) do set myip=%%~xa
set myip=%myip:~1%
if %myip% geq 11 (
if %myip% leq 52 (
goto :LCD
) else if %myip% geq 53 (
if %myip% leq 64 (
goto :CRT
) else if %myip% geq 103 (
if %myip% leq 108 (
goto :LCD
) else if %myip% geq 109 (
if %myip% leq 132 (
goto :CRT
)
)
)
)
) else (
goto :kshy
)
:CRT
:LCD
:kshy
作者: jycel
时间: 2008-10-29 14:10
我试下看!我刚刚也在测试
for /f "skip=2 tokens=4" %%l in (ComputerCfg.txt) do set fbldx=%%l
echo 设定分辩率大小: %fbldx%
if "%fbldx%"=="17" ( goto 17 ) else ( goto 1024 )
:1024
if "%fbldx%"=="19" ( goto 19 ) else ( goto setup )
:17
echo 17成功!
goto setup
:19
echo 19成功!
goto setup
:setup
echo 测试成功!
pause
结果是可以,但是编法有点不好!
作者: jycel
时间: 2008-10-29 14:39
已全部搞定!GHOST后全自动设置所有设置
[
Last edited by jycel on 2008-10-29 at 14:43 ]