标题: [文本处理] 把论坛的批处理精华下载,按照自己的思路写,call:pl的位置问题 [打印本页]
作者: wokong 时间: 2014-1-4 19:41 标题: 把论坛的批处理精华下载,按照自己的思路写,call:pl的位置问题
本帖最后由 wokong 于 2014-1-4 19:46 编辑
这个是论坛的原题: 要求通过批处理输出10行每行30个由特殊字符随机组成的字符串(见举例)
这个是标准答案- 代码:
- :?^~!#$%^&*()='"><|/@\
- @echo off
- set/p str=<%~fs0
- setlocal enabledelayedexpansion
- for /l %%a in (1 1 10) do (
- for /l %%i in (1 1 30) do (
- set/a n=!random!%%22
- call :lp
- )
- echo !var!&set "var="
- )
- pause>nul&exit/b
- :lp
- set "var=!var!!str:~%n%,1!"
复制代码
这个是正确结果
\<^=|>*)(~$=!$==###"^!!&#*^~')
"^:*\*)>^&<%:"^>^'|(^~!)&&|&
%)'(^)$!|~'!%||##(%*)(!>)%:&
^!"'@\\~$>$*@~:'=='(=)|(^=|&%|
%)'&*'&&&>@^~"*^*||>$~|<!'<%=&
(|"\~**'^@^|))#@%$|^%)|#&**%<"
~)|\!(%:\#%>>#$&<&~!)@~~~=>!'*
|*'&<<$$!\%**:$*'=\"!$&|)#(*|~
#=\@@)<\=!%'(~\)":#<&%"'*!^>&~
:^@^^*>!\~%$%$=\=$>|%$~@"\~&#*
下面这个是我的代码 仅仅换了下位置,为啥就截然不同了,我的2种写法结果都不对。
《1》- :?^~!#$%^&*()='"><|/@\
- @echo off
- set/p str=<%~fs0
- setlocal enabledelayedexpansion
- for /l %%a in (1 1 10) do (
- for /l %%i in (1 1 30) do (
- set/a n=!random!%%22
- set var=!var!!str:~!n!,1!"
- )
- echo !var!&set "var="
- )
- pause>nul&exit/b
- :lp
复制代码
《2》- :?^~!#$%^&*()='"><|/@\
- @echo off
- set/p str=<%~fs0
- setlocal enabledelayedexpansion
- for /l %%a in (1 1 10) do (
- for /l %%i in (1 1 30) do (
- set/a n=!random!%%22
- set var=!var!!str:~%n%,1!"
- )
- echo !var!&set "var="
- )
- pause>nul&exit/b
- :lp
复制代码
作者: wokong 时间: 2014-1-5 23:53
貌似没一个人呢
作者: DAIC 时间: 2014-1-6 08:50
你的call命令在哪里?
作者: DAIC 时间: 2014-1-6 08:52
你的第一种写法里面:- set var=!var!!str:~!n!,1!"
复制代码
这样的变量嵌套在语法上就是错误的
作者: 我来了 时间: 2014-1-7 18:57
大才们的问题,我全不会。只会用技巧。IDM就能办到。
作者: wokong 时间: 2014-1-7 22:09
等了几天?没人?
作者: terse 时间: 2014-1-7 22:17
这样就好了- :~!@#$%^&*()<>"/\|'=;
- @echo off
- set/p str=<%~fs0 >nul
- setlocal enabledelayedexpansion
- for /l %%a in (1 1 10) do (
- set "var="
- for /l %%b in (1 1 30) do (
- set/an=!random!%%21
- for %%c in (!n!) do set "var=!var!!str:~%%c,1!"
- )
- echo !var!
- )
- pause
复制代码
作者: DAIC 时间: 2014-1-8 08:37
回复 6# wokong
你是说4楼、5楼不是人吗?
作者: wokong 时间: 2014-1-24 14:59
8楼不要断章取义,挑拨离间,感谢大家的回答.
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |