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


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

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

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

  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

再发一个不用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 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

  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. :star
  3. for  %%i in (星期一 星期二 星期三 星期四 星期五 星期六 星期日) do echo %%i & pause>nul
  4. goto :star
复制代码

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. 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

学习一下,本人新手,只会用最原始的 - -b 见笑了~~

  1. @echo off
  2. set /a a=%random% %% 7
  3. if "%a%"=="0" echo 周一
  4. if "%a%"=="1" echo 周二
  5. if "%a%"=="2" echo 周三
  6. if "%a%"=="3" echo 周四
  7. if "%a%"=="4" echo 周五
  8. if "%a%"=="5" echo 周六
  9. if "%a%"=="6" echo 周日
  10. pause >nul
  11. %0
复制代码
1

评分人数

TOP

以前见过,但是不会。现在能做了,嘿嘿…

TOP

@echo off
set /a a=%random% %%7+1
echo 周%a%
pause>nul
%0
回答的第一个问题,完全自己做的,比较爽
1

评分人数

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a a=%random% %% 7+1
  4. set b=0
  5. for %%i in (周一 周二 周三 周四 周五 周六 周日) do (
  6. set /a b+=1
  7. if !b!==!a! echo %%i)
复制代码

TOP

  1. @ECHO OFF
  2. setlocal enabledelayedexpansion
  3. SET a=星期一星期二星期三星期四星期五星期六星期日
  4. set /a m=(!random!%%7)*3
  5. echo !m!
  6. echo !a:~%m%,3!
  7. pause>nul
复制代码

TOP

我不是高手,前几天才迷上p这个东西!

TOP

返回列表