[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

【练习-011】批处理按要求将字符串分段输出

一、要求用批处理随机输出200个字符到1.txt中的一行,内容类同如下:
  1. xh45q3ma+remgofm54sevhrna4g5r8pl9cjardezqjwj3m8itamh0a4itzd6jz8cmrfmibmhr0wmccyb8qnp2qh4rvlwff6yr2ez4eo063u6viy7ppw+nzxaxe8vrm190eei_0dwx5e2kxbds-ae6e96c9_i9glw8mz+uf6uienx9od8bktfnjlwlqu-e1rcj33_+4bz
复制代码
二、要求用批处理将1.txt中的内容按10个字符为一段输出如下面两种形式:
在一行内输出:
  1. xh45q3ma+r emgofm54se vhrna4g5r8 pl9cjardez qjwj3m8ita mh0a4itzd6 jz8cmrfmib mhr
  2. 0wmccyb 8qnp2qh4rv lwff6yr2ez 4eo063u6vi y7ppw+nzxa xe8vrm190e ei_0dwx5e2 kxbds-
  3. ae6e 96c9_i9glw 8mz+uf6uie nx9od8bktf njlwlqu-e1 rcj33_+4bz
复制代码
分行输出:
  1. xh45q3ma+r
  2. emgofm54se
  3. vhrna4g5r8
  4. pl9cjardez
  5. qjwj3m8ita
  6. mh0a4itzd6
  7. jz8cmrfmib
  8. mhr0wmccyb
  9. 8qnp2qh4rv
  10. lwff6yr2ez
  11. 4eo063u6vi
  12. y7ppw+nzxa
  13. xe8vrm190e
  14. ei_0dwx5e2
  15. kxbds-ae6e
  16. 96c9_i9glw
  17. 8mz+uf6uie
  18. nx9od8bktf
  19. njlwlqu-e1
  20. rcj33_+4bz
复制代码
----------------------------------------------------------------------------------------------------------------------------------------------------
要求:代码高效、通用、简洁、不产生临时文件
ps:请老手们将本题留给新手完成

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

原帖由 youxi01 于 2008-8-10 00:35 发表
还有个细节问题:
产生的随机字符在什么范围内(主要包括哪些字符)?

只要是字符就可以,当然可以不考虑特殊字符问题了。
***共同提高***

TOP

pause>nul&goto end
这句会出错的,应该改成pause>nul&goto :eof或pause>nul&exit
***共同提高***

TOP

原帖由 shqf 于 2008-8-10 12:52 发表
@echo off
set /p str=nul

我认为此贴不能加分,原因如下:
一、书写不规范,不能加分。
二、第一问被略过,不能加分。
三、有错不改,不能加分。
***共同提高***

TOP

在本人未给出答案前,各位新人都可来一试下身手,本人将视情况一一评述和加分。
***共同提高***

TOP

原帖由 terse 于 2008-8-12 00:57 发表
我也要分
@echo off&Setlocal Enabledelayedexpansion
     set "var=abcdefghijklmnopqrstuvwxyz1234567890+-_"
     for /l %%i in (1 1 2000) do set /a "m=!random!%%39"&call set str=!str!%%var:~!m!,1%%
...

代码有多处错误,请修改后再拿分。
***共同提高***

TOP

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

多处错误?望兄指正。

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

TOP

下面给出本人的解吧:
  1. @echo off
  2. rem 随机生成200个字符
  3. set "var=abcdefghijklnmopqrstuvwxyz0123456789+_/-"
  4. :begin
  5. set  /a a=%random%%%40,n+=1
  6. call,set "str=%str%%%var:~%a%,1%%"
  7. if %n% neq 200 goto begin
  8. rem 在一行内分段输出
  9. :lp
  10. set /a m+=1
  11. set /p=%str:~,10% <nul&set "_%m%=%str:~,10%"
  12. set "str=%str:~10%"
  13. if defined str goto lp
  14. rem 分行输出分段后字符
  15. echo.&echo.&for /l %%i in (1,1,%m%) do call,echo %%_%%i%%
  16. pause>nul
复制代码

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

TOP

返回列表