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

在这里试了半天的延迟变量应用~ 终于试出来了~
  1. @echo off & setlocal enabledelayedexpansion
  2. set rcd=日一二三四五六
  3. set var=
  4. set /a var=%random%%%7
  5. echo 周!rcd:~%var%,1!
  6. pause>nul
复制代码

TOP

回复 15# lhjoanna


    为什么要用call?起到了什么作用

TOP

请问下这段:%random%%%7+1是神马意思?我知道%random%是代表随即变量,但是不知道%%7+1是什么意思?

TOP

回复 1# wxcute
我尝试着写了下,
运行一下还是可以的。
大家看看中不中。
  1. @echo off
  2. set "day=日一二三四五六"
  3. set /a nu=%random% %% 7
  4. call echo 星期%%day:~%nu%,1%%
  5. pause>nul
复制代码

TOP

本帖最后由 mxxcgzxxx 于 2011-7-24 09:14 编辑
mxxcgzxxx
算法很妙,不过这句说明 周一对应的是 0
依此类推,周日对应的就是 6 。

%Random%% ...
Hello123World 发表于 2011-7-17 13:37



    %%7是取余的意思,所以只能取到6,如果是7就整了所以是0

是退格符,就是会退一格,比如:
echo 3215    的结果显示:325
echo 3215    的结果显示:351
1

评分人数

世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

  1. @echo off
  2. :xx
  3. set/a "a=%random%%%7 +1"
  4. if %a% equ 7 (echo 星期日) else echo 星期%a%
  5. pause&goto xx
复制代码

TOP

77# mxxcgzxxx
算法很妙,不过
  1. set a=0
  2. for %%1 in (一 二 三 四 五 六 日) do (set 周%%1=!a!  )&(set /a a+=1)
复制代码
这句说明 周一对应的是 0
依此类推,周日对应的就是 6 。

%Random%%%7算出来应该是 0-7 ,8个数
所以按你的算法 %Random%%%6即可。

本来是来找茬的,没想到也给自己找出问题来了,  是什么我还不明白,呵呵。

TOP

1# wxcute
  1. @echo off
  2. Set /a a=%Random%%%6
  3. If %a%==0 (Echo 星期日) Else (Echo 星期%a%)
  4. pause
复制代码

TOP

本帖最后由 mxxcgzxxx 于 2011-7-15 16:16 编辑

每天一小练来个新思路
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set a=0
  4. for %%1 in (一 二 三 四 五 六 日) do (set 周%%1=!a!  )&(set /a a+=1)
  5. set /a b=%random%%%7
  6. set 周|findstr "%b%"
  7. pause>nul
  8. %0 2>nul
复制代码
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

刚才看到前面有高手用ping 法的时间延迟,学了来用用
  1. @echo off
  2. color 1a
  3. echo.===========================
  4. echo.
  5. echo. Random Number TO Weekday
  6. echo.
  7. echo.===========================
  8. :start
  9. set /a rdn=%random% %% 7+1
  10. echo.%rdn%
  11. set wkd=Monday Tuesday Wednesday Thursday Friday Saturday Sunday
  12. for /f "tokens=%rdn% delims= " %%i in ("%wkd%") do (echo %%i)
  13. ping -n 2 127.0.0.1>nul
  14. goto start
复制代码

TOP

本帖最后由 welllib 于 2011-6-23 11:15 编辑
  1. @echo off
  2. color 1a
  3. echo.===========================
  4. echo.
  5. echo. Random Number TO Weekday
  6. echo.
  7. echo.===========================
  8. :start
  9. echo.======================
  10. set /a rdn=%random% %% 7+1
  11. echo.%rdn%
  12. set wkd=Monday Tuesday Wednesday Thursday Friday Saturday Sunday
  13. for /f "tokens=%rdn% delims= " %%i in ("%wkd%") do (echo %%i)
  14. echo.======================
  15. set /p ch=Exit? (Choose "Y" to exit, Others to Try Again)
  16. if /i %ch%==Y (goto end) else (goto start)
复制代码

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set /a xq=%random%%%7+1
  3. set  "xq_1=%xq:1=一%"
  4. set  "xq_2=%xq:2=二%"
  5. set  "xq_3=%xq:3=三%"
  6. set  "xq_4=%xq:4=四%"
  7. set  "xq_5=%xq:5=五%"
  8. set  "xq_6=%xq:6=六%"
  9. set  "xq_7=%xq:7=七%"
  10. for %%i in (%xq%) do echo 星期!xq_%%i!
  11. pause>nul
复制代码
有点复杂!!!

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :1
  4. set a=%random%
  5. set b=%a:~2,1%
  6. if !b! equ 0 echo 星期一
  7. if !b! equ 1 echo 星期二
  8. if !b! equ 2 echo 星期三
  9. if !b! equ 3 echo 星期四
  10. if !b! equ 4 echo 星期五
  11. if !b! equ 5 echo 星期六
  12. if !b! equ 6 echo 星期日
  13. if !b! gtr 6 goto :1
  14. pause
复制代码
看到好方法都有人用了,用个能实现,但很复杂的方法参与下
菜鸟一个,潜心学习
总有学会的一天

TOP

@echo off
setlocal enabledelayedexpansion
set a=一二三四五六日
set /a b=%random%%%7
set c=!a:~%b%,1!
echo 周%c%
pause

TOP

@echo off
setlocal enabledelayedexpansion
set str=一二三四五六日
set /a num=%random%%%7
echo 周!str:~%num%,1!
pause
看得多说得多,远比不上写得多。

TOP

返回列表