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

[ 新手练习 5 ] 批处理随机显示星期几

[复制链接]
发表于 2009-11-16 20:45:00 | 显示全部楼层
原帖由 tession 于 2009-11-12 15:31 发表


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

没错啊...num是0~6,0对应一,6对应日
发表于 2009-11-17 07:45:28 | 显示全部楼层
还有这种方法:
  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
复制代码

评分

参与人数 1PB +1 收起 理由
wxcute + 1 恭喜NET兄荣升版主,等会儿回个正式贺帖。

查看全部评分

发表于 2009-11-17 21:12:44 | 显示全部楼层
  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 编辑 ]

评分

参与人数 1PB +1 收起 理由
wxcute + 1 小鼓励下。

查看全部评分

发表于 2009-11-17 21:29:55 | 显示全部楼层
再发一个不用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
复制代码

评分

参与人数 1PB +2 收起 理由
wxcute + 2 又一种方法,不错。

查看全部评分

发表于 2009-11-20 14:35:48 | 显示全部楼层
  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的默认分割,让我的代码总得不出结果,我找了好久,最后是将字符直接的间隔删掉再重输空格,才解决问题。..

评分

参与人数 1PB +2 收起 理由
wxcute + 2 因为我用的是全角空格。

查看全部评分

发表于 2009-12-6 20:42:59 | 显示全部楼层
  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
复制代码

评分

参与人数 1PB +1 收起 理由
wxcute + 1 哈哈,好。

查看全部评分

发表于 2009-12-7 14:05:01 | 显示全部楼层
  1. @echo off
  2. :star
  3. for  %%i in (星期一 星期二 星期三 星期四 星期五 星期六 星期日) do echo %%i & pause>nul
  4. goto :star
复制代码
发表于 2009-12-13 22:11:32 | 显示全部楼层
  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
复制代码
发表于 2009-12-20 00:54:25 | 显示全部楼层

迷惑~

  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是周三啊。

评分

参与人数 1PB +1 收起 理由
wxcute + 1 按这个“实际”算会没有周日。 R 原 ...

查看全部评分

发表于 2010-1-18 20:26:46 | 显示全部楼层

学习一下,本人新手,只会用最原始的 - -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
复制代码

评分

参与人数 1PB +2 收起 理由
wxcute + 2 很不错。

查看全部评分

发表于 2010-1-27 09:23:32 | 显示全部楼层
以前见过,但是不会。现在能做了,嘿嘿…
发表于 2010-1-29 11:37:56 | 显示全部楼层
@echo off
set /a a=%random% %%7+1
echo 周%a%
pause>nul
%0
回答的第一个问题,完全自己做的,比较爽

评分

参与人数 1PB +2 收起 理由
wxcute + 2 加分。

查看全部评分

发表于 2010-4-14 11:40:24 | 显示全部楼层
  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)
复制代码
发表于 2010-4-15 14:52:43 | 显示全部楼层
  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
复制代码
发表于 2010-4-16 23:55:15 | 显示全部楼层
我不是高手,前几天才迷上p这个东西!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 21:20 , Processed in 0.026321 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表