[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[ 新手练习 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

评分人数

@echo off
set var=周一周二周三周四周五周六周日
set /a num=%random% %% 7
set /a startIndex=%num% * 2
call echo %%var:~%startIndex%,2%%
pause

TOP

@echo off
set /a var=%random% %% 7 +1
set "str=星期一 星期二 星期三 星期四 星期五 星期六 星期日"
for /f "tokens=%var%" %%i in ("%str%") do (
        echo %%i
)
pause>nul

TOP

本帖最后由 wxf617 于 2022-10-20 11:44 编辑
  1. @echo off
  2. :SJ
  3. set /a str=%random% %% 7 +1
  4. echo 下周%STR%您将会有好运
  5. pause>nul
  6. goto sj
复制代码
上面是数字,下面是汉字
  1. @echo off && SETLOCAL ENABLEDELAYEDEXPANSION
  2. :XH
  3. set str=一二三四五六日
  4. set /a z=%random% %% 7
  5. set a=!str:~%z%,1!
  6. echo 下周%a%您将会有好运
  7. pause>nul
  8. goto XH
复制代码

TOP

呵,wxcute兄指的是这个吧?
lhjoanna 发表于 2008-11-17 14:23



   弱弱的问:当余数为0时,str字符串带引号“,结果会不会异常呢?星期”

TOP

被楼上的先写了。
截取就这几个样子,再写了感觉太重复了。
默默的复习一下下

TOP

回复 106# ai20110304


    应该是%random% %%6吧?
せそしぬいノろッボ

TOP

本帖最后由 ai20110304 于 2019-12-22 21:24 编辑

基于15楼上进一步实现。
本例十次取随机对应星期。作为测试。核心代码可去循环
  1. @echo off
  2. REM 随机显示星期几
  3. set count=0
  4. :loop
  5. set "str=星期日星期一星期二星期三星期四星期五星期六"
  6. set /a num=%random% %%7
  7. REM echo %num%
  8. REM 根据每个星期的均分长度,倍数增长,记录变量指针的起始位置。
  9. set /a num*=3
  10. call,echo,%%str:~%num%,3%%
  11. set /a count+=1
  12. if not %count%==10 goto loop
  13. goto :eof
复制代码
我就是我,不一样的烟火!

TOP

回复 15# lhjoanna


    还是这个方法最简洁
我就是我,不一样的烟火!

TOP

回复 15# lhjoanna


    call 的这一句要怎么理解,能说说吗?

TOP

回复 24# XBATI


    %random%是随机变量,可以是任意数字

TOP

本帖最后由 impk 于 2019-8-16 13:09 编辑
  1. @echo off
  2. set /a day=%random% %% 7 + 1
  3. for /f "tokens=%day% delims= " %%i in ( "日 一 二 三 四 五 六" ) do echo 星期%%i
复制代码

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set var=%random%
  4. set /a randomnum=!var! %% 7
  5. echo !randomnum!
  6. if !randomnum! EQU 0 (
  7. echo 星期日
  8. goto END
  9. )
  10. if !randomnum! EQU 1 (
  11. echo 星期一
  12. goto END
  13. )
  14. if !randomnum! EQU 2 (
  15. echo 星期二
  16. goto END
  17. )
  18. if !randomnum! EQU 3 (
  19. echo 星期三
  20. goto END
  21. )
  22. if !randomnum! EQU 4 (
  23. echo 星期四
  24. goto END
  25. )
  26. if !randomnum! EQU 5 (
  27. echo 星期五
  28. goto END
  29. )
  30. if !randomnum! EQU 6 (
  31. echo 星期六
  32. goto END
  33. )
  34. :END
复制代码

TOP

本帖最后由 tigerpower 于 2018-5-16 07:27 编辑
  1. powershell -c "$lc=[Globalization.CultureInfo]'zh-CN';(Get-Date).AddDays((random 7)).ToString('dddd',$lc)"
复制代码
试试将zh-CN替换为en-US或ja-JP

TOP

::一周有七天
::周一 周二 周三 周四 周五 周六 周日
::利用随机数随机显示一天,开始可以用阿拉伯数字,但最终显示时要用汉字 ^_^
@echo off
set /a n=%random% %% 7
if %n%==0 echo 星期一
if %n%==1 echo 星期二
if %n%==2 echo 星期三
if %n%==3 echo 星期四
if %n%==4 echo 星期五
if %n%==5 echo 星期六
if %n%==6 echo 星期七
pause>nul
%0
::按一下变一个

TOP

返回列表