[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
原帖由 XBATI 于 2008-12-28 21:51 发表
set /a num=%random%%%7 这句请从各个角度帮我分析下


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

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

  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

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

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

答:
  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
  2. set /a week=%random%%%8
  3. if %week% neq 0 echo,今天是星期%week%
  4. pause
复制代码

TOP

@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

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

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

  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

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

评分人数

TOP

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

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

迷惑~

  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

返回列表