返回列表 发帖
本帖最后由 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

回复 106# ai20110304


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

TOP

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

TOP

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



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

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

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

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

TOP

返回列表