中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]变量请教:根据IP地址判断IP所在机分辩率大小
作者:
标题: [已结]变量请教:根据IP地址判断IP所在机分辩率大小 上一主题 | 下一主题
jycel
初级用户




积分 75
发帖 46
注册 2007-9-25
状态 离线
『楼 主』:  [已结]变量请教:根据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 ]

   此帖被 -2 点积分    点击查看详情   
评分人:【 HAT 分数: -2  时间:2008-10-28 21:42


2008-10-28 17:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jycel
初级用户




积分 75
发帖 46
注册 2007-9-25
状态 离线
『第 2 楼』:  

以下是脚本全部!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 ]

2008-10-28 18:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 3 楼』:  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




2008-10-28 21:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jycel
初级用户




积分 75
发帖 46
注册 2007-9-25
状态 离线
『第 4 楼』:  

这只是一组数据!如果是IP11-255内判断呢版主?

2008-10-28 22:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  

你把3楼的16改成225不行吗!楼主?



2008-10-29 10:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jycel
初级用户




积分 75
发帖 46
注册 2007-9-25
状态 离线
『第 6 楼』:  

我的意思是:
IP:11-52 103-108为液晶
IP:53-64 109-132为纯平
要通过前面检测出%myip%值去执行相对应的命令!
而不是直接给出%myip%值 来判断,如果直接给出来也可以,把他放在二个配置文件中来判断!版主再帮我分析分析哈!

2008-10-29 12:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dato
高级用户




积分 916
发帖 377
注册 2004-3-8
状态 离线
『第 7 楼』:  

偶也一直无法借助psexec来远程执行这些调整分辩率的程序.
但是可以有其它变通方法就是预先在母盘里将一些封装的cmd转成.exe放置于用户登录阶段执行,下次遇到这种问题只要用psexec将相应的.exe覆盖重启就OK了



http://dato.ys168.com
google search bot
http://dato.minidns.net/
2008-10-29 13:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jycel
初级用户




积分 75
发帖 46
注册 2007-9-25
状态 离线
『第 8 楼』:  

改了一个方法测试
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

2008-10-29 13:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  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




2008-10-29 14:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jycel
初级用户




积分 75
发帖 46
注册 2007-9-25
状态 离线
『第 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
结果是可以,但是编法有点不好!

2008-10-29 14:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jycel
初级用户




积分 75
发帖 46
注册 2007-9-25
状态 离线
『第 11 楼』:  

已全部搞定!GHOST后全自动设置所有设置

[ Last edited by jycel on 2008-10-29 at 14:43 ]

2008-10-29 14:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: