中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 00:21
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 错在哪儿? 查看 1,189 回复 9
楼 主 错在哪儿? 发表于 2008-06-24 12:46 ·  中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
18年会员
UID 119451
性别 男
状态 离线
建了个CS服闹着玩,由于我的是动态IP,而添加SXE要修改IP参数,于是弄个P来完成:
@echo off
set /p lip=<lip.txt
del ips.asp 1>nul 2>&1
wget http://www.ip138.com/ips.asp 1>nul 2>&1
for /f "tokens=2 skip=2 delims=" %%i in ('find "您的IP地址是:" ips.asp') do set "ip=%%i"
del ips.asp 1>nul 2>&1
echo 上次导入IP是:%lip%
echo 现在公网IP是:%ip%
if %lip%==%ip% echo 两次相同!
set /p cf=需要将它导入吗?Y键确认,其他退出:
if %cf%=="y" goto :cip || goto :eof
:cip
echo.
echo 正在导入,请稍候...
U82GB.vbs "server.cfg"
for /f "delims=" %%j in (server.cfg) do (
echo.%%j | findstr/i "__sxei_internal_ip">nul && echo __sxei_internal_ip %ip%||echo %%j
)>>sv.tmp
move sv.tmp server.cfg
GB2U8.vbs "server.cfg"
echo.%ip%>lip.txt
cls&echo 已成功把%ip%导入!
pause


本想设计输入"Y"才导入,但是现在只有直接回车才退出,输入任何键都会导入,究竟错在哪?
2 发表于 2008-06-24 12:48 ·  IANA 局域网IP(Private-Use)
初级用户
积分 65
发帖 29
注册 2008-03-24 12:17
18年会员
UID 113853
性别 男
状态 离线
if /i “%cf%”=="y" goto :cip || goto :eof


这行 %cf%加引号看看,另外建议加/I不区分大小写。。。
3 发表于 2008-06-24 12:53 ·  中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
18年会员
UID 119451
性别 男
状态 离线
谢谢!还是不行
4 发表于 2008-06-24 13:18 ·  中国 浙江 温州 电信
初级用户
★★
积分 158
发帖 89
注册 2007-04-25 08:06
19年会员
UID 86402
性别 男
状态 离线
if /I %cf%==y goto :cip
goto :eof
5 发表于 2008-06-24 13:22 ·  中国 浙江 温州 电信
初级用户
★★
积分 158
发帖 89
注册 2007-04-25 08:06
19年会员
UID 86402
性别 男
状态 离线
if not %cf%==y goto :eof ||goto :cip
6 发表于 2008-06-24 13:53 ·  中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
18年会员
UID 119451
性别 男
状态 离线
Originally posted by kgdetg1127 at 2008-6-24 01:22 PM:
if not %cf%==y goto :eof ||goto :cip


无法跳转到cip
导入失败
7 发表于 2008-06-24 15:05 ·  IANA 局域网IP(Private-Use)
初级用户
积分 65
发帖 29
注册 2008-03-24 12:17
18年会员
UID 113853
性别 男
状态 离线
我想
if /i “%cf%”=="y" goto :cip || goto :eof

这样的写法本身就有问题,无论输入正确与否,||后的goto :eof都不会得到执行。
建议那几行这样修改:

if /i "%cf%"=="y" goto :cip
goto :eof
:cip

这样当输入为Y时即跳转到clip,否则执行下一行自动跳转到eof
8 发表于 2008-06-24 15:10 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
if /i "%cf%" neq "y" goto :eof
echo.
echo 正在导入,请稍候...
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
radem +2 2008-06-25 13:02
批处理之家新域名:www.bathome.net
9 发表于 2008-06-24 21:48 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
20年会员
UID 59307
状态 离线
if %cf%=="y" goto :cip || goto :eof
:cip

改成:
if %cf%=="y" goto :cip else goto :eof
:cip


if not "%cf%"=="y" goto :eof
┌───────┐
├→学习→实践→┤
└───────┘
10 发表于 2008-06-25 18:46 ·  中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
18年会员
UID 119451
性别 男
状态 离线
Originally posted by zw19750516 at 2008-6-24 03:10 PM:
if /i "%cf%" neq "y" goto :eof
echo.
echo 正在导入,请稍候...


就是它!谢了
论坛跳转: