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

【练习-045】批处理按要求输出字符串并替换字符串

&&为了加强大家对大小写字母处理的技术,特出题,题目如下;
题一
   已知有abdefg kmli socsd pdxy nq五个字符串,要求用批处理随机输出大小写字符串到a.txt,,输出为每行10个字符串,共10
行,示例如下:
nqpdxySOCSDabdefgabdefgnqPDXYnqnqnq
pdxypdxyNQNQSOCSDSOCSDABDEFGKMLIkmlipdxy
socsdsocsdsocsdPDXYABDEFGabdefgPDXYnqsocsdPDXY
KMLIPDXYpdxySOCSDNQSOCSDABDEFGkmliNQABDEFG
SOCSDabdefgSOCSDabdefgPDXYnqKMLISOCSDSOCSDNQ
KMLIkmliabdefgNQnqKMLInqABDEFGKMLIpdxy
kmlipdxykmlipdxynqABDEFGNQKMLIpdxypdxy
pdxynqKMLInqsocsdABDEFGsocsdpdxypdxyABDEFG
KMLIpdxynqSOCSDPDXYKMLIKMLIpdxySOCSDnq
socsdnqNQkmliKMLIpdxynqabdefgSOCSDSOCSD
题二
   要求用批处理对文本a.txt中的字符串进行替换并输出到b.txt,注意替换是区分大小写的,如将里面的ABDEFG全替换成bathome,
但abdfeg不被替换,以上面的文本为例,输出后b.txt的内容应如下:
nqpdxySOCSDabdefgabdefgnqPDXYnqnqnq
pdxypdxyNQNQSOCSDSOCSDbathomeKMLIkmlipdxy
socsdsocsdsocsdPDXYbathomeabdefgPDXYnqsocsdPDXY
KMLIPDXYpdxySOCSDNQSOCSDbathomekmliNQbathome
SOCSDabdefgSOCSDabdefgPDXYnqKMLISOCSDSOCSDNQ
KMLIkmliabdefgNQnqKMLInqbathomeKMLIpdxy
kmlipdxykmlipdxynqbathomeNQKMLIpdxypdxy
pdxynqKMLInqsocsdbathomesocsdpdxypdxybathome
KMLIpdxynqSOCSDPDXYKMLIKMLIpdxySOCSDnq
socsdnqNQkmliKMLIpdxynqabdefgSOCSDSOCSD
第一题满分10分,第二题满分20分,视情况加分,加分以思路为重
***共同提高***

多谢随风兄指出,已修正。
***共同提高***

TOP

请大家用纯批解决,虽然这个要求有点苛刻。。。
***共同提高***

TOP

楼上没想到直接set "var=abdefg ABDEFG kmli KMLI socsd SOCSD pdxy PDXY nq NQ"?
***共同提高***

TOP

我在题目中选取ABDEFG来做替换字符是只是为了举例,并不一定总是拿ABDEFG替换为
bathome,所以请大家在解答时还是要注意下代码的通用性,另不要考虑特殊字符。。。
***共同提高***

TOP

看来大家都很积极,这确实是一个好现象,现给出本人第一题的解(第二题由于没有新思
路暂不公布):
  1. @echo off&setlocal enabledelayedexpansion
  2. cd.>a.txt
  3. set "str=abdefg kmli socsd pdxy nq ABDEFG KMLI SOCSD PDXY NQ"
  4. for /l %%a in (1,1,100) do (
  5.      set /a a=!random!%%10+1,b=%%a%%10&call :lp
  6.      if !b! equ 0 echo.>>a.txt
  7. )
  8. start a.txt&goto :eof
  9. :lp
  10. for /f "tokens=%a%" %%a in ("%str%") do set /p=%%a<nul>>a.txt
复制代码

[ 本帖最后由 batman 于 2009-4-24 11:37 编辑 ]
***共同提高***

TOP

对for中变量的用法,大家有兴趣的可以看看此贴的七楼这段代码(可别晕了哦)。。。。
http://bbs.bathome.net/viewthrea ... hlight=%C1%B7%CF%B0
***共同提高***

TOP

返回列表