标题: [数值计算] 我的求随机数每位数字和的批处理错在哪里? [打印本页]
作者: 悬崖之树 时间: 2012-8-3 22:20 标题: 我的求随机数每位数字和的批处理错在哪里?
- @echo off
-
- set a=%random%
-
- echo %a%
-
- set sum=0
-
- set n=0
-
- :loop
-
- set /a sum=%a:~n,1%+%sum%
-
- set /a n=%n%+1
-
- if "%a:~n,1%" neq "" goto loop
-
-
- echo 结果是%sum%
-
- pause
复制代码
作者: 悬崖之树 时间: 2012-8-3 22:32
我知道错在哪里了 呵呵 应该写成:- @echo off& setlocal enabledelayedexpansion
-
- set a=%random%
-
- echo %a%
-
- set sum=0
-
- set n=0
-
- :loop
-
- set /a sum=!a:~%n%,1!+%sum%
-
- set /a n=%n%+1
-
- if "!a:~%n%,1!" neq "" goto loop
-
-
- echo 结果是%sum%
-
- pause
复制代码
作者: loquat 时间: 2012-8-3 23:17
能不能不开启延迟标识,用下面这个代码的方式实现?- @echo off
- :main
- cls
- set str=
- set /p str= 请输入字符串(退出请直接按回车):
- if not defined str exit
- cls
- echo.
- echo 转换前:"%str%"
- for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call set str=%%str:%%i=%%i%%
- echo ____________________________________________
- echo.
- echo 转换后:"%str%"
- echo.
- echo 按任意键进行下一次演示...
- pause>nul
- goto main
复制代码
跟这个是完全一样的- setlocal enabledelayedexpansion
- for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call set str=!str:%%i=%%i!
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |