找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 323162|回复: 112

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

[复制链接]
发表于 2008-11-16 20:14:42 | 显示全部楼层 |阅读模式
一周有七天
周一 周二 周三 周四 周五 周六 周日

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

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

参考:[ 一日一教学 ] 随机数的应用
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

评分

参与人数 1PB +5 收起 理由
Batcher + 5 Good work!

查看全部评分

发表于 2008-11-16 21:27:52 | 显示全部楼层
  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
复制代码
应该是最好懂的代码了...

评分

参与人数 1PB +8 收起 理由
wxcute + 8 为抢第一个吧,累赘了点

查看全部评分

发表于 2008-11-16 21:32:13 | 显示全部楼层

回复 2楼 的帖子

确实是最好懂的,但也是最。。。。。
发表于 2008-11-16 21:32:58 | 显示全部楼层
  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
复制代码

评分

参与人数 1PB +8 收起 理由
wxcute + 8 不错哦

查看全部评分

发表于 2008-11-16 21:33:32 | 显示全部楼层
一开始被LZ的中文空格搞晕了...
 楼主| 发表于 2008-11-16 21:41:52 | 显示全部楼层
回 5 楼:习惯用全角空格来对齐 ^_^

大家试试不用 for
发表于 2008-11-16 22:06:38 | 显示全部楼层
确实,不用for显得更直接,新手都来试试。。
发表于 2008-11-16 22:14:36 | 显示全部楼层
  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 编辑 ]

评分

参与人数 1PB +1 收起 理由
wxcute + 1 和 2 楼一样了。

查看全部评分

发表于 2008-11-16 22:40:55 | 显示全部楼层

回复 8楼 的帖子

你这个和2楼的有区别吗?
给大家个提示,充分利用变量的截取。
发表于 2008-11-16 23:26:34 | 显示全部楼层
  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 编辑 ]

评分

参与人数 1PB +2 收起 理由
wxcute + 2 还是差不多哦

查看全部评分

 楼主| 发表于 2008-11-17 08:55:37 | 显示全部楼层
多谢 随风 兄帮忙照看帖子。

大家不用拼命想,偶尔想到了再来回答也行。
发表于 2008-11-17 09:21:56 | 显示全部楼层
  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
复制代码

评分

参与人数 1PB +3 收起 理由
wxcute + 3 鼓励鼓励

查看全部评分

发表于 2008-11-17 13:23:20 | 显示全部楼层
  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)
复制代码
貌似不显示周一?

评分

参与人数 1PB +4 收起 理由
wxcute + 4 看来对随机数认识还是不够阿

查看全部评分

 楼主| 发表于 2008-11-17 13:39:12 | 显示全部楼层

回复 13楼 的帖子

%random%%%12+1

%random%%%14
就好了。

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

还可再简化。
发表于 2008-11-17 14:23:45 | 显示全部楼层
呵,wxcute兄指的是这个吧?
  1. @echo off
  2. set "str=一二三四五六日"
  3. set /a num=%random%%%7
  4. call echo 星期%%str:~%num%,1%%
  5. pause>nul
复制代码

评分

参与人数 2PB +16 收起 理由
wxcute + 8 我也要加,虽然有管理员给你加分
batman + 8 恩,小子不错,掌握了random了

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 18:38 , Processed in 0.027381 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表