返回列表 发帖
@echo off&setlocal enabledelayedexpansion
set var=abcdefghijklmnopqrstuvwxyz0123456789+-_
for /l %%a in (1 1 200) do (
   set/a n=!random!%%39
   call,set a=!a!%%var:~!n!,1%%
)
echo %a%&pause>nul&echo.
:lp
for /l %%i in (0 10 190) do if not defined b (set/p=!a:~%%i,10! <nul) else echo !a:~%%i,10!
if not defined b set b=b&pause>nul&echo.&echo.&goto lp
pauseCOPY


[ 本帖最后由 pusofalse 于 2008-8-12 10:07 编辑 ]
1

评分人数

心绪平和,眼藏静谧。

TOP

原帖由 terse 于 2008-8-12 09:59 发表

多处错误?望兄指正。

这是你第一次的代码:
***共同提高***

TOP

下面给出本人的解吧:
@echo off
rem 随机生成200个字符
set "var=abcdefghijklnmopqrstuvwxyz0123456789+_/-"
:begin
set  /a a=%random%%%40,n+=1
call,set "str=%str%%%var:~%a%,1%%"
if %n% neq 200 goto begin
rem 在一行内分段输出
:lp
set /a m+=1
set /p=%str:~,10% <nul&set "_%m%=%str:~,10%"
set "str=%str:~10%"
if defined str goto lp
rem 分行输出分段后字符
echo.&echo.&for /l %%i in (1,1,%m%) do call,echo %%_%%i%%
pause>nulCOPY

[ 本帖最后由 batman 于 2008-8-12 12:40 编辑 ]
***共同提高***

TOP

原帖由 batman 于 2008-8-12 11:05 发表

这是你第一次的代码:
208

谢谢 第一次的代码在我的短消息里找到
不过 我这里运行没出现问题
我想知道兄指的多处错误是否就是生成数和行呢?如是的话 那是我测试没改过来的

TOP

@echo off
set "str=0123456789abcdefghijklmnopqrstuvwxyz-+/_"
:start
set /a n=%random%%%40,m+=1
call,set num=%%str:~%n%,1%%&set var=%num%%var%
if %m%==201 (echo %var%>>1.txt&goto next) else (goto start)
:next
echo 分行输出:&set /p a=<1.txt&set b=0
:lp
call,set c=%%a:~%b%,10%%
if "%c%"=="" goto end
call,set d=%%d%%%c% &echo %c%&set /a b+=10
goto :lp
:end
echo.&echo.&echo.&echo 一行输出:&echo %d%&pauseCOPY

[ 本帖最后由 keen 于 2009-5-3 17:53 编辑 ]
(*^_^*)

TOP

@echo off&setlocal enabledelayedexpansion
set "str=1234567890abcdefghijklmnopqrstuvwxyz@#$_+-"
for /l %%i in (0,1,199) do (
set/a ran=!random!%%42&call set "st=!st!%%str:~!ran!,1%%"
)
echo 整行输出: !st!&echo.&echo 分列输出:
for /l %%j in (0,10,190) do (
set /a m=%%j
call set "st1=!st1!%%st:~!m!,10%% "
call echo %%st:~!m!,10%%
)
echo.&echo 分段输出: !st1!
pauseCOPY
1

评分人数

TOP

根据楼上的再精简、提速
@echo off&setlocal enabledelayedexpansion
set "str=1234567890abcdefghijklmnopqrstuvwxyz@#$_+-"
for /l %%i in (0,1,199) do set/a ran=!random!%%42&for %%a in (!ran!) do set "st=!st!!str:~%%a,1!"
echo 整行输出: !st!&echo.&echo 分列输出:
for /l %%j in (0,10,190) do echo !st:~%%j,10!&set "st1=!st1!!st:~%%j,10! "
echo.&echo 分段输出: !st1!
pauseCOPY

TOP

返回列表