返回列表 发帖

[ 新手练习 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=周一 周二 周三 周四 周五 周六 周日"
:sc_start       
        set /a num=%random%%%7+1
        for /f "tokens=%num%" %%a in ("%var%") do echo %%a
goto :sc_start

TOP

@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 编辑
@echo off
:SJ
set /a str=%random% %% 7 +1
echo 下周%STR%您将会有好运
pause>nul
goto sjCOPY
上面是数字,下面是汉字
@echo off && SETLOCAL ENABLEDELAYEDEXPANSION
:XH
set str=一二三四五六日
set /a z=%random% %% 7
set a=!str:~%z%,1!
echo 下周%a%您将会有好运
pause>nul
goto XHCOPY

TOP

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



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

TOP

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

TOP

回复 106# ai20110304


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

TOP

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

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

TOP

回复 15# lhjoanna


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

TOP

回复 15# lhjoanna


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

TOP

回复 24# XBATI


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

TOP

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

TOP

@echo off
setlocal enabledelayedexpansion
set var=%random%
set /a randomnum=!var! %% 7
echo !randomnum!
if !randomnum! EQU 0 (
echo 星期日
goto END
)
if !randomnum! EQU 1 (
echo 星期一
goto END
)
if !randomnum! EQU 2 (
echo 星期二
goto END
)
if !randomnum! EQU 3 (
echo 星期三
goto END
)
if !randomnum! EQU 4 (
echo 星期四
goto END
)
if !randomnum! EQU 5 (
echo 星期五
goto END
)
if !randomnum! EQU 6 (
echo 星期六
goto END
)
:ENDCOPY

TOP

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

TOP

返回列表