标题: [文本处理] [已解决]BAT代码的判断语句有没问题,不会跳到指定的标签 [打印本页]
作者: iq301 时间: 2014-6-8 17:50 标题: [已解决]BAT代码的判断语句有没问题,不会跳到指定的标签
请帮忙看下这代码的判断语句有没问题,不会跳到指定的标签,还有再想问下,在每个标签里面的goto end,能不能不用或者用什么代码来跳出标签,然后运行标签外面的其他命令,谢谢- @echo on& setlocal enabledelayedexpansion
- set t1=%TIME:~1,1%
- set t2=%TIME:~0,2%
- if %t2% LSS 10 (set t=0%t1%) else (set t=%t2%)
-
- if 00 GTR %t% if %t% LSS 14 goto rnckpi07
- if 14 GTR %t% if %t% LSS 22 goto rnckpi15
- if %t% EQU 23 goto rnckpi23
-
- :rnckpi07
- echo rnckpi07
- goto end
-
- :rnckpi15
- echo rnckpi15
- goto end
-
- :rnckpi23
- echo rnckpi23
- goto end
-
- :end
- pause
复制代码
作者: 522235677 时间: 2014-6-8 18:07
- @echo off& setlocal enabledelayedexpansion
- set t1=%TIME:~1,1%
- set t2=%TIME:~0,2%
- if %t2% LSS 10 (set t=0%t1%) else (set t=%t2%)
-
- if %t% GTR 00 if %t% LSS 14 goto rnckpi07
- if %t% GTR 14 if %t% LSS 22 goto rnckpi15
- if %t% EQU 23 goto rnckpi23
-
- :rnckpi07
- echo rnckpi07
- goto end
-
- :rnckpi15
- echo rnckpi15
- goto end
-
- :rnckpi23
- echo rnckpi23
- goto end
-
- :end
- pause
复制代码
作者: 522235677 时间: 2014-6-8 18:09
if 00 GTR %t% if %t% LSS 14 goto rnckpi07
if 00 GTR %t%
除非时间是负的,你这个才能成立。
你没搞清楚这个运算符。
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
作者: iq301 时间: 2014-6-8 18:17
回复 3# 522235677
谢谢,是我搞反方向了,请问有没什么方法可以代替goto end这个命令来跳出标签?
作者: DAIC 时间: 2014-6-8 18:18
- @echo off
- setlocal enabledelayedexpansion
- set t1=%time:~1,1%
- set t2=%time:~0,2%
- if %t2% lss 10 (
- set t=10%t1%
- ) else (
- set t=1%t2%
- )
-
- if 100 leq !t! (
- if !t! lss 114 (
- goto rnckpi07
- )
- )
- if 114 leq !t! (
- if !t! lss 122 (
- goto rnckpi15
- )
- )
- if !t! geq 122 (
- goto rnckpi23
- )
- goto end
-
- :rnckpi07
- echo rnckpi07
- goto end
-
- :rnckpi15
- echo rnckpi15
- goto end
-
- :rnckpi23
- echo rnckpi23
- goto end
-
- :end
- pause
复制代码
作者: DAIC 时间: 2014-6-8 18:24
在每个标签里面的goto end,能不能不用或者用什么代码来跳出标签,然后运行标签外面的其他命令
请举个例子说明一下你想跳到什么地方去执行命令
作者: Tamce 时间: 2014-6-9 08:48
回复 522235677
谢谢,是我搞反方向了,请问有没什么方法可以代替goto end这个命令来跳出标签?
iq301 发表于 2014-6-8 18:17
如果你是想返回到进入标签的地方可以用以下方式:- @echo off
- echo Test
- call :abc
- echo Test2
- pause
- goto :eof
-
- :abc
- echo abc
- exit /b
复制代码
使用call来进入标签,使用exit /b用于返回值(返回至调用处),如果是直接进入标签则会导致退出
使用call还可以向标签传递参数。
作者: iq301 时间: 2014-6-9 22:22
回复 7# Tamce
谢谢,明白了,看来只能用call来走。同时也谢谢楼上各位朋友帮忙,感谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |