[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

[ 新手练习 5 ] 批处理随机显示星期几

一周有七天
周一 周二 周三 周四 周五 周六 周日

利用随机数随机显示一天,开始可以用阿拉伯数字,但最终显示时要用汉字 ^_^

答对题均加分,以第一个分高。

参考:[ 一日一教学 ] 随机数的应用
http://bbs.bathome.net/thread-2563-1-1.html
上一题:[ 新手习题 4 ] 循环十秒倒计时
http://bbs.bathome.net/thread-2494-1-1.html
下一题:[ 新手习题 6 ] 添加汉字行号
http://bbs.bathome.net/thread-2569-1-1.html


所发代码若不止一行,请用code标签把代码部分括起来。

Q: 如何用code把代码扩起来?
A: http://bbs.bathome.net/thread-404-1-1.html
1

评分人数

  1. @echo off
  2. set /a day=%random% %% 7
  3. if %day%==0 echo 星期日
  4. if %day%==1 echo 星期一
  5. if %day%==2 echo 星期二
  6. if %day%==3 echo 星期三
  7. if %day%==4 echo 星期四
  8. if %day%==5 echo 星期五
  9. if %day%==6 echo 星期六
  10. pause>nul
复制代码
应该是最好懂的代码了...
1

评分人数

    • wxcute: 为抢第一个吧,累赘了点PB + 8

TOP

回复 2楼 的帖子

确实是最好懂的,但也是最。。。。。
技术问题请到论坛发帖求助!

TOP

  1. @echo off
  2. set "code=周一 周二 周三 周四 周五 周六 周日"
  3. :main
  4. set /a strRan=%random%%%7+1
  5. for /f "tokens=%strRan% delims=, " %%a in ("%code%") do (echo %%a)
  6. pause>nul
  7. goto :main
复制代码
1

评分人数

TOP

一开始被LZ的中文空格搞晕了...

TOP

回 5 楼:习惯用全角空格来对齐 ^_^

大家试试不用 for

TOP

确实,不用for显得更直接,新手都来试试。。
技术问题请到论坛发帖求助!

TOP

  1. ::按一下变一个
  2. @echo off
  3. set /a n=%random% %% 7+1
  4. if %n%==1 echo 今天周一
  5. if %n%==2 echo 今天周二
  6. if %n%==3 echo 今天周三
  7. if %n%==4 echo 今天周四
  8. if %n%==5 echo 今天周五
  9. if %n%==6 echo 今天周六,休息,看望家人
  10. if %n%==7 echo 今天周日,明天上班,抓紧休息
  11. pause>nul
  12. %0
复制代码
更喜欢BBCC的代码,差一大截啊

[ 本帖最后由 hlzj88 于 2008-11-16 22:28 编辑 ]
1

评分人数

    • wxcute: 和 2 楼一样了。PB + 1
目的,学习批处理

TOP

回复 8楼 的帖子

你这个和2楼的有区别吗?
给大家个提示,充分利用变量的截取。
技术问题请到论坛发帖求助!

TOP

  1. @echo off
  2. set var=周一周二周三周四周五周六周日
  3. set /a n=%random% %% 7+1
  4. if %n% lss 2 echo %var:~0,2%
  5. if %n%==2 echo %var:~2,2%
  6. if %n%==3 echo %var:~4,2%
  7. if %n%==4 echo %var:~6,2%
  8. if %n%==5 echo %var:~8,2%
  9. if %n%==6 echo %var:~-4,2%
  10. if %n% gtr 6 echo %var:~-2,2%
  11. pause>nul
  12. %0
复制代码
想高一点,高不了啊,算是对上面8楼的修改吧

[ 本帖最后由 hlzj88 于 2008-11-16 23:38 编辑 ]
1

评分人数

目的,学习批处理

TOP

多谢 随风 兄帮忙照看帖子。

大家不用拼命想,偶尔想到了再来回答也行。

TOP

  1. @echo off
  2. set /a n=%random% %% 7
  3. if %n%==0 echo 今天是星期一
  4. if %n%==1  echo 今天是星期二
  5. if %n%==2 echo 今天是星期三
  6. if %n%==3 echo 今天是星期四
  7. if %n%==4 echo 今天是星期五
  8. if %n%==5 echo 今天是星期六
  9. if %n%==6 echo 今天是星期天
  10. ping -n 2 127.1>nul>nul
  11. %0
复制代码
1

评分人数

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. :main
  3. set "code=周一周二周三周四周五周六周日"&set /a strRan=%random%%%12+1&set /a strRan2=!strRan!%%2
  4. if "!strRan2!" equ "0" (set strPrint=!code:~-%strRan%,2!&echo. !strPrint!&pause&goto :main ) else (goto :main)
复制代码
貌似不显示周一?
1

评分人数

    • wxcute: 看来对随机数认识还是不够阿PB + 4

TOP

回复 13楼 的帖子

%random%%%12+1

%random%%%14
就好了。

一周可是有 7 天阿,12 / 2 怎么也只有 6 天阿!

还可再简化。

TOP

呵,wxcute兄指的是这个吧?
  1. @echo off
  2. set "str=一二三四五六日"
  3. set /a num=%random%%%7
  4. call echo 星期%%str:~%num%,1%%
  5. pause>nul
复制代码
2

评分人数

    • wxcute: 我也要加,虽然有管理员给你加分PB + 8
    • batman: 恩,小子不错,掌握了random了PB + 8

TOP

返回列表