中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 判断输入数字的批处理: 上一主题 | 下一主题
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『楼 主』:  判断输入数字的批处理:


@echo off&setlocal enabledelayedexpansion
set "code=0 10 20 30 40 50 60 70 80 90 100"
set "fw=0-10 10-20 20-30 30-40 40-50 50-60 60-70 70-80 80-90 90-100"
:begin
set "number="&set n=0
cls&set /p number=请输入数:
if "%number%"=="" goto begin
for %%i in (%code%) do (
    set /a n+=1
    if %number% lss 0 (
       cls&echo 所输入的数^<0&goto end
       ) else (
       if %%i equ %number% (
          cls&echo 所输入的数=%%i&goto end
          ) else (
          if %%i gtr %number% (
             goto echo
          )
       )
    )
)
echo 所输入的数^>100&goto end
:echo
set /a n-=1
for /f "tokens=%n% delims= " %%i in ("%fw%") do cls&echo 所输入的数在%%i间
:end
pause&goto begin
[ Last edited by zw19750516 on 2008-5-14 at 11:43 AM ]



批处理之家新域名:www.bathome.net
2008-5-14 11:02
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

@echo off
:begin
cls&set /p number=请输入整数:
if %number% lss 0 echo 你所输入的数小于0&goto next
if %number% gtr 100 echo 你所输入的数大于100&goto next
set a=%number:~0,1%
set b=%number:~1,1%
if "%b%"=="" set b=%a%&set a=0
set /a c=%a%+1
if %b% EQU 0 (echo 你所输入的数是:%number%) else (echo 你所输入的数在%a%0-%c%0之间)
:next
pause&goto begin

2008-5-14 11:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by slore at 2008-5-14 11:35:
@echo off
:begin
cls&set /p number=请输入整数:
if %number% lss 0 echo 你所输入的数小于0&goto next
if %number% gtr 100 echo 你所输入的数大于100&goto next
set a= ...

方法好,但不兼容小数。



批处理之家新域名:www.bathome.net
2008-5-14 11:44
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 4 楼』:  


@echo off
:loop
cls&set /p var=请输入整数:&cls
if %var% lss 0 echo 所输入的数 %var% ^< 0&goto end
if %var% gtr 100 echo 所输入的数 %var% ^> 100&goto end
set /a w=var%%10,h=var-w+10,a2=var-w,a=!w
set a0=所输入的数在 %a2%-%h% 之间&set a1=所输入的数是:%var%
echo.&call echo %%a%a%%%
:end
echo.&pause
goto loop




致精致简!
2008-5-14 11:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 5 楼』:  

VBS搞小数那才爽,,,,,



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-14 11:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-5-14 11:44:

方法好,但不兼容小数。

都是按你的处理……你开始是整数嘛……

既然要求小数,改改就兼容了。
@echo off
:begin
cls&set /p number=请输入整数:
for /f "tokens=1,2 delims=." %%i in ("%number%") do set lnumber=%%i&set rnumber=%%j
if %lnumber% lss 0 echo 你所输入的数小于0&goto next
if %lnumber% gtr 100 echo 你所输入的数大于100&goto next
set a=%lnumber:~0,1%
set b=%lnumber:~1,1%
if "%b%"=="" set b=%a%&set a=0
set /a c=%a%+1
if %b% EQU 0 if "%rnumber%"=="" echo 你所输入的数是:%lnumber%&goto next
echo 你所输入的数在%a%0-%c%0之间
:next
pause&goto begin
[ Last edited by slore on 2008-5-14 at 12:59 PM ]

   此帖被 +3 点积分     点击查看详情   
评分人:【 bat-zw 分数: +3  时间:2008-5-14 16:50


2008-5-14 12:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 7 楼』:  


@echo off
set/p t=
for /f "tokens=1* delims=." %%i in ("%t%") do set t=%%i&set tt=%%j
for /l %%i in (0 1 1000) do call:lp %%i
:end
echo %a%
pause
exit
:lp
if %t% neq %1 goto :eof
if %t% equ %1 (if defined tt (set/a b=%1+1&call set a=你输入的数在%1-%%b%%之间)else set a=你输入的数是%1)
if defined a goto :end




简单!简单!再简单!
2008-5-14 14:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: