Board logo

标题: 错在哪儿? [打印本页]

作者: radem     时间: 2008-6-24 12:46    标题: 错在哪儿?

建了个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"才导入,但是现在只有直接回车才退出,输入任何键都会导入,究竟错在哪?
作者: hongewuyan     时间: 2008-6-24 12:48
if  /i “%cf%”=="y" goto :cip || goto :eof


这行 %cf%加引号看看,另外建议加/I不区分大小写。。。
作者: radem     时间: 2008-6-24 12:53
谢谢!还是不行
作者: kgdetg1127     时间: 2008-6-24 13:18
if /I %cf%==y goto :cip
goto :eof
作者: kgdetg1127     时间: 2008-6-24 13:22
if not %cf%==y goto :eof ||goto :cip
作者: radem     时间: 2008-6-24 13:53


  Quote:
Originally posted by kgdetg1127 at 2008-6-24 01:22 PM:
if not %cf%==y goto :eof ||goto :cip

无法跳转到cip
导入失败
作者: hongewuyan     时间: 2008-6-24 15:05
我想
if  /i “%cf%”=="y" goto :cip || goto :eof

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

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

这样当输入为Y时即跳转到clip,否则执行下一行自动跳转到eof
作者: bat-zw     时间: 2008-6-24 15:10
if /i "%cf%" neq "y" goto :eof
echo.
echo 正在导入,请稍候...
作者: wxcute     时间: 2008-6-24 21:48
if %cf%=="y" goto :cip || goto :eof
:cip

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


if not "%cf%"=="y" goto :eof
作者: radem     时间: 2008-6-25 18:46


  Quote:
Originally posted by zw19750516 at 2008-6-24 03:10 PM:
if /i "%cf%" neq "y" goto :eof
echo.
echo 正在导入,请稍候...

就是它!谢了