中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 18:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]依据IP地址最后三位,转跳到不同语句.
楼 主 [求助]依据IP地址最后三位,转跳到不同语句. 发表于 2006-11-11 16:13 ·  中国 广西 柳州 电信
初级用户
积分 20
发帖 8
注册 2006-11-11 15:36
UID 70234
性别 男
状态 离线
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
哪个达人帮忙……
2 发表于 2006-11-11 16:14 ·  中国 广西 柳州 电信
初级用户
积分 20
发帖 8
注册 2006-11-11 15:36
UID 70234
性别 男
状态 离线
哦顺带的加一个开始用的验证 如果F盘存在则结束 如果不存在则执行这些语句……
3 发表于 2006-11-11 18:24 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线


@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 ]
4 发表于 2006-11-12 01:29 ·  中国 广西 柳州 电信
初级用户
积分 20
发帖 8
注册 2006-11-11 15:36
UID 70234
性别 男
状态 离线
谢谢,果然是达人…… 我想问的是
: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知道很少的说……
5 发表于 2006-11-12 01:37 ·  中国 广西 柳州 电信
初级用户
积分 20
发帖 8
注册 2006-11-11 15:36
UID 70234
性别 男
状态 离线
@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分流 不会做……
6 发表于 2006-11-12 04:16 ·  中国 广西 柳州 电信
初级用户
积分 20
发帖 8
注册 2006-11-11 15:36
UID 70234
性别 男
状态 离线
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转跳的
论坛跳转: