[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
@echo off
title=随机显示星期几
:0
set/a a=%random% %% 7 +1
if %a%==1 echo 星期一
if %a%==2 echo 星期二
if %a%==3 echo 星期三
if %a%==4 echo 星期四
if %a%==5 echo 星期五
if %a%==6 echo 星期六
if %a%==7 echo 星期日
pause>nul
goto 0

TOP

  1. @ echo off
  2. set /a week=%random%%%8
  3. if %week% neq 0 echo,今天是星期%week%
  4. pause
复制代码

TOP

答:
  1. @echo off
  2. set str=一二三四五六日
  3. set /a ran=%random%%%7
  4. call set day=%%str:~%ran%,1%%
  5. echo 周%day%
  6. pause
复制代码


效果:
[attach]2725[/attach]

================
这个应该很好懂吧.....没用for 因为不太会 = =!
end;

TOP

看我的!

<1>@echo off
:top
set /a var=%random%%%7
if %var%==0 call :a
if %var%==1 call :b
if %var%==2 call :c
if %var%==3 call :d
if %var%==4 call :e
if %var%==5 call :f
if %var%==6 call :g
:a
echo 周一&pause&goto :top
:b
echo 周二&pause&goto :top
:c
echo 周三&pause&goto :top
:d
echo 周四&pause&goto :top
:e
echo 周五&pause&goto :top
:f
echo 周六&pause&goto :top
:g
echo 周天&pause&goto :top
pause
<2>@echo off
:top
set /a var=%random%%%7
if %var%==0 call echo 周一&pause&goto :top
if %var%==1 call echo 周二&pause&goto :top
if %var%==2 call echo 周三&pause&goto :top
if %var%==3 call echo 周四&pause&goto :top
if %var%==4 call echo 周五&pause&goto :top
if %var%==5 call echo 周六&pause&goto :top
if %var%==6 call echo 周天&pause&goto :top

[ 本帖最后由 rogue_1983 于 2010-8-2 15:48 编辑 ]

TOP

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

TOP

  1. @echo off
  2. set a=星期一
  3. set b=星期二
  4. set c=星期三
  5. set d=星期四
  6. set e=星期五
  7. set f=星期六
  8. set g=星期日
  9. set /a n=%random%%%7+1
  10. if %n% equ 1 (echo %a%) else (
  11. if %n% equ 2 (echo %b%) else (
  12. if %n% equ 3 (echo %c%) else (
  13. if %n% equ 4 (echo %d%) else (
  14. if %n% equ 5 (echo %e%) else (
  15. if %n% equ 6 (echo %f%) else (
  16. if %n% equ 7 (echo %g%) else exit ))))))
  17. pause >nul
复制代码

TOP

原帖由 poxi 于 2010-7-18 19:48 发表
答:
@echo off
set str=一二三四五六日
set /a ran=%random%%%7
call set day=%%str:~%ran%,1%%
echo 周%day%
pause


效果:
2725

================
这个应该很好懂吧.....没用for 因为不太会 = =! ...


这位兄台写的用截取啊..高人..高.学习了.

TOP

原帖由 XBATI 于 2008-12-28 21:51 发表
set /a num=%random%%%7 这句请从各个角度帮我分析下


这个%random%是批处理中.取随机数的意思.任意数除以7 余数都只会是 0-6 所以就可以用这来取7个数了..大该就是这样.

TOP

  1. @echo off
  2. set /a a=%random%%%7+1
  3. for /f "tokens=%a%" %%b in ('more +4 "%~nx0"') do echo %%b
  4. pause>nul&exit
  5. 周一 周二 周三 周四 周五 周六 周日
复制代码

[ 本帖最后由 vincentzhou 于 2010-12-31 23:41 编辑 ]
only the strong survive!

TOP

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

TOP

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

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

  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

本帖最后由 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

刚才看到前面有高手用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

返回列表