Board logo

标题: [求助]依据IP地址最后三位,转跳到不同语句. [打印本页]

作者: cldiyer     时间: 2006-11-11 16:13    标题: [求助]依据IP地址最后三位,转跳到不同语句.

c:
cd \
if exist ipconfig.txt  del ipconfig.txt
ipconfig /all >ipconfig.txt
if exist ip.txt   del ip.txt
find  "IP Address" ipconfig.txt >ip.txt
for /f "skip=2 tokens=15" %%I in (ip.txt) do set mac=%%I


做到这里不会做了 要实现的目的就是IP为192.168.1.1到192.168.1.100执行一个转跳 192.168.1.101到192.168.1.238执行另一个转跳 是用来虚拟磁盘IP分流用的 前100位 连接192.168.1.239 后101到238连接192.168.1.240
哪个达人帮忙……
作者: cldiyer     时间: 2006-11-11 16:14
哦顺带的加一个开始用的验证 如果F盘存在则结束 如果不存在则执行这些语句……
作者: lxmxn     时间: 2006-11-11 18:24

@echo off&&setlocal ENABLEDELAYEDEXPANSION
if exist F:\ goto :EOF
for /f "delims=: tokens=2" %%a in ('ipconfig /all ^| find /i "IP Address"') do (
        set ip=%%a&&set ip=!ip:.= !
        call :ai !ip!
)
goto :EOF

:ai       
if %4 leq 100 goto a
if %4 leq 238 goto b
echo 没有主机连接......
pause&&goto :EOF

:a
net use \\192.168.1.239\$c "" /u:"administrator"
pause&&goto :EOF

:b
net use \\192.168.1.240\$c "" /u:"administrator"
pause&&goto :EOF
  
  以上代码未完全测试,如有问题,请跟帖继续讨论……


[ Last edited by lxmxn on 2006-11-11 at 06:28 PM ]
作者: cldiyer     时间: 2006-11-12 01:29
谢谢,果然是达人…… 我想问的是
:ai        
if %4 leq 100 goto a
if %4 leq 238 goto b
echo 没有主机连接......
pause&&goto :EOF
这里 是1-100  101到238  lep是什么意思……如果是小于等于的话 B是不是就包括a了? 菜鸟…… 对bat知道很少的说……
作者: cldiyer     时间: 2006-11-12 01:37
@echo off
e:
echo **********正在断开连接**********
for /l %%a in (1,1,10) do (
iscsicli sessionlist>session.isc
for /f "tokens=1,3,4" %%b in (session.isc) do (
if %%b==Session (
iscsicli logouttarget 0x%%d>session.isc
)
if %%b==Total (
if %%c==0 (
echo **********断开连接成功**********
goto end
)
)
)
)
echo off

:end
echo **********正在连接服务器更新游戏,请稍侯**********
iscsicli AddTargetPortal 192.168.1.240 3260
iscsicli LoginTarget iqn.2005-02.com.ricecake.iscsi:00 T * * * * * * * * * * * * * * * 0
\\gameshell\up$\调用程序\原调用.exe


这个是我的iscsi的连接脚本 最后一行是连接完后调用讯闪游戏菜单……
服务器有两个IP 一个是239 一个是240  想1-100号用239 101-238用240  IP分流 不会做……
作者: cldiyer     时间: 2006-11-12 04:16
echo off&&setlocal ENABLEDELAYEDEXPANSION
if exist F:\ goto :EOF
for /f "delims=: tokens=2" %%a in ('ipconfig /all ^| find /i "IP Address"') do (
        set ip=%%a&&set ip=!ip:.= !
        call :ai !ip!
)
goto :EOF

:ai
if %4 leq 100 goto a
if %4 geq 101 goto b
echo 没有主机连接......
pause&&goto :EOF

:a
echo **********正在连接239更新游戏,请稍侯**********
iscsicli AddTargetPortal 192.168.1.239 3260
iscsicli LoginTarget iqn.2005-02.com.ricecake.iscsi:00 T * * * * * * * * * * * * * * * 0
\\gameshell\up$\调用程序\原调用.exe
goto :EOF

:b
echo **********正在连接240更新游戏,请稍侯**********
iscsicli AddTargetPortal 192.168.1.240 3260
iscsicli LoginTarget iqn.2005-02.com.ricecake.iscsi:00 T * * * * * * * * * * * * * * * 0
\\gameshell\up$\调用程序\原调用.exe
goto :EOF

搞定……问一下 如何等上一个命令处理完了后再处理下一个命令? 我想等ISCSI连接运行完毕后再连接讯闪 可以用vbs 这个bat是通过一个vbs转跳的