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

迷惑~

  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
复制代码
这个是四楼的代码/
我不明白set /a strRan=%random%%%7+1 去余了为什么还要加1??
如果随即数是10,那strran的值是4,运行for命令后显示的是周四,实际上10是周三啊。
1

评分人数

    • wxcute: 按这个“实际”算会没有周日。 R 原 ...PB + 1

TOP

  1. @echo off
  2. set a=周一 周二 周三 周四 周五 周六 周日
  3. set /a b=%random%%%7+1
  4. for /f "tokens=%b% delims= " %%i in ("%a%") do echo %%i
  5. pause
复制代码
扬鞭策马自奋蹄!

TOP

  1. @echo off
  2. :star
  3. for  %%i in (星期一 星期二 星期三 星期四 星期五 星期六 星期日) do echo %%i & pause>nul
  4. goto :star
复制代码

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. :begin
  3. set a=一二三四五六日
  4. set /a b=%random%%%7
  5. echo 周!a:~%b%,1!
  6. pause&goto begin
复制代码
1

评分人数

TOP

  1. @echo off
  2. set week=周一 周二 周三 周四 周五 周六 周日
  3. ::echo %week%
  4. set /a rand=%random%%%7+1
  5. ::echo %rand%
  6. for /f "tokens=%rand%" %%a in ("%week%") do (echo %%a)
  7. echo    按任意键退出!
  8. pause>nul
复制代码
楼主的题目直接复制字符“周一 周二 周三..”,不能用delims的默认分割,让我的代码总得不出结果,我找了好久,最后是将字符直接的间隔删掉再重输空格,才解决问题。..
1

评分人数

    • wxcute: 因为我用的是全角空格。PB + 2

TOP

再发一个不用for,用set
  1. @echo off
  2. set "str=一二三四五六日"
  3. set/a n=%random%%%7
  4. call,set m=%%str:~%n%,1%%
  5. echo 随机显示:周%m%
  6. pause>nul
复制代码
1

评分人数

    • wxcute: 又一种方法,不错。PB + 2

TOP

  1. @echo off
  2. set "str=周一 周二 周三 周四 周五 周六 周日"
  3. set/a n=%random%%%7+1
  4. for /f "tokens=%n%" %%i in ("%str%") do echo 随机显示:%%i
  5. pause>nul
复制代码

[ 本帖最后由 pumahxh 于 2009-11-18 08:50 编辑 ]
1

评分人数

TOP

还有这种方法:
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (一 二 三 四 五 六 日) do set/a n+=1&set x!n!=%%a
  3. :lp
  4. set/a ran=1%time:~-2%%%7+1
  5. echo 星期!x%ran%!
  6. >nul ping -n 2 127.1
  7. goto :lp
复制代码
1

评分人数

    • wxcute: 恭喜NET兄荣升版主,等会儿回个正式贺帖。PB + 1

TOP

原帖由 tession 于 2009-11-12 15:31 发表


比如这里num等于2  会显示星期三,这应该不是想要的结果吧???

没错啊...num是0~6,0对应一,6对应日

TOP

..........................
@echo off
set "day=日一二三四五六"
set /a nub=%random%%%7
call echo 星期%%day:~%nub%,1%%
pause>nul



...哎~思路和楼上重覆了,几乎一模一樣... ...

[ 本帖最后由 Taurus 于 2009-11-15 14:31 编辑 ]
带内地用语或带里语的文章,在下读写总觉有点吃力;
如误解了各位意思的讲勿见怪   ^_^

TOP

原帖由 lhjoanna 于 2008-11-17 14:23 发表
呵,wxcute兄指的是这个吧?@echo off
set "str=一二三四五六日"
set /a num=%random%%%7
call echo 星期%%str:~%num%,1%%
pause>nul


比如这里num等于2  会显示星期三,这应该不是想要的结果吧???

TOP

都被写完了...
  1. @echo off
  2. set/as=%random%%%7
  3. set s=周%s:0=一%
  4. set s=%s:1=二%
  5. set s=%s:2=三%
  6. set s=%s:3=四%
  7. set s=%s:4=五%
  8. set s=%s:5=六%
  9. echo %s:6=日%
复制代码
1

评分人数

    • wxcute: 变量替换法,你够绝的。PB + 2

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set dayset=一二三四五六日
  4. set /a day=%random% %%7
  5. echo 周!dayset:~%day%,1!
  6. pause>nul
  7. %0
复制代码
1

评分人数

TOP

  1. @echo off
  2. set dayset="周一,周二,周三,周四,周五,周六,周日"
  3. set /a day=%random% %%7+1
  4. for /f "delims=, tokens=%day%" %%i in (%dayset%) do (
  5.       echo %%i
  6.       )
  7. pause>nul
  8. %0
复制代码
1

评分人数

TOP

  1. @echo off && setlocal enabledelayedexpansion
  2. set /a num=%random:~-1,1%
  3. set "str=天一二三四五六"
  4. if %num% gtr 6 (echo 今天是星期天) else call echo 今天是星期%%str:~!num!,1%%
  5. pause >nul
复制代码
只能根据随机数的最后一位进行判断。。
星期天会比较多。。
还是喜欢星期天啊 ^_^

[ 本帖最后由 aoelus 于 2009-5-10 13:02 编辑 ]
1

评分人数

    • wxcute: 够厉害。“画饼充饥” 的饼毕竟不是真的哦。 ...PB + 2

TOP

返回列表