Board logo

标题: [新手练习]批处理变量延迟实验出题 [打印本页]

作者: canyuexiaolang    时间: 2009-8-27 11:41     标题: [新手练习]批处理变量延迟实验出题

有一天在Q群上问了BATMAN个问题,怎么形成打字效果
代码如下:
  1. set "str=怎么用BAT产生打字效果."
  2. :lp
  3. set /p=%str:~,1%<nul
  4. for /l %%a in (1,1,150) do echo>nul
  5. if defined str set "str=%str:~1%"&goto lp
  6. pause>nul
复制代码
结果发现不能打出 空格 特殊字符 及数字
所以我给新手用这个例子出个题
把数字替换成如下
  1. 1=①
  2. 2=②
  3. 3=③
  4. 4=④
  5. 5=⑤
  6. 6=⑥
  7. 7=⑦
  8. 8=⑧
  9. 9=⑨
  10. 0=〇
复制代码
然后用打字效果打出:
  1. 84fhbsef4b98fgnb1eb218es4n9dfbdnsd8ga4s874hg98e4hb4w4H98BE49GW98H48V48SD4G984HNB8949S8JN4R8H4H18
复制代码
(我刚刚发现在P中可以粘贴)
打字效果代码如上
别说不会
      () ()       () ()        () ()
(— —) (— —)(— —)

[ 本帖最后由 canyuexiaolang 于 2009-8-27 12:26 编辑 ]
作者: canyuexiaolang    时间: 2009-8-27 12:05

伤心了
怎么没人回帖
也不难啊
。。
还有
感谢BATMAN给的这段代码哈~

[ 本帖最后由 canyuexiaolang 于 2009-8-27 12:24 编辑 ]
作者: canyuexiaolang    时间: 2009-8-27 12:22

算了,提示一下下吧
  1. @echo off&setlocal EnableDelayedExpansion
  2. set /p a=数字或英文字母:
  3. echo.
  4. echo.
  5. echo.
  6. echo.
  7. echo.
  8. for %%i in (%a%) do (   
  9. set n=%%i
  10. set n=!n:1=①!
  11. set n=!n:2=②!
  12. set n=!n:3=③!
  13. set n=!n:4=④!
  14. set n=!n:5=⑤!
  15. set n=!n:6=⑥!
  16. set n=!n:7=⑦!
  17. set n=!n:8=⑧!
  18. set n=!n:9=⑨!
  19. set n=!n:0=〇!
  20. )
  21. set "str=%n%"
  22. :lp
  23. set /p=%str:~,1%<nul
  24. for /l %%a in (1,1,250) do echo>nul
  25. if defined str set "str=%str:~1%"&goto lp
  26. pause>nul
复制代码

[ 本帖最后由 canyuexiaolang 于 2009-8-28 07:30 编辑 ]
作者: wxcute    时间: 2009-9-16 16:42

不知道示例的效果是怎么样的,给个例子让新手看看罢!
作者: Taurus    时间: 2009-11-15 14:54

我没有"⑦"这种的字元,以"七"等代替吧
@echo off&setlocal enabledelayedexpansion&set nub=0
set /p l=string =
for %%i in ( 零 一 二 三 四 五 六 七 八 九 ) do call set l=%%l:!nub!=%%i%%&set/a nub+=1
cls&echo !l!
pause

及L3的這樣就可以吧...
@echo off
set /p n=数字或英文字母:
set n=%n:1=一%
set n=%n:2=二%
set n=%n:3=三%
set n=%n:4=四%
set n=%n:5=五%
set n=%n:6=六%
set n=%n:7=七%
set n=%n:8=八%
set n=%n:9=九%
set n=%n:0=零%
:lp
ping /?>nul
if defined n set /p=%n:~,1%<nul&set "n=%n:~1%"&goto lp
pause>nul

[ 本帖最后由 Taurus 于 2009-11-15 16:04 编辑 ]
作者: x576380361    时间: 2009-12-5 23:17

  1. @echo off
  2. set str=怎 么 用 B A T 产 生 打 字 效 果
  3. for %%i in (%str%) do (
  4. set /p=%%i<nul
  5. ping /n 1 127.0.0.1>nul
  6. )
  7. pause>nul
复制代码
这个也能实现打字效果,楼主能说说有什么缺点?我也学着新知识哦
作者: battab    时间: 2014-2-22 13:20

回复 6# x576380361


    缺点很明显,你要输出的字符串中有好多空格,如果要你输出一篇文章,单加空格的活都能累死喽!
作者: 尘丶    时间: 2015-8-9 16:57

  1. @echo off&setlocal EnableDelayedExpansion
  2. set str=84fhbsef4b98fgnb1eb218es4n9dfbdnsd8ga4s874hg98e4hb4w4H98BE49GW98H48V48SD4G984HNB8949S8JN4R8H4H18
  3. for /l %%a in (0,1,100) do (
  4.     set str1=!str:~%%a,1!
  5.     if not "!str1!"=="" (
  6.        set str1=!str1:1=①!
  7.        set str1=!str1:2=②!
  8.        set str1=!str1:3=③!
  9.        set str1=!str1:4=④!
  10.        set str1=!str1:5=⑤!
  11.        set str1=!str1:6=⑥!
  12.        set str1=!str1:7=⑦!
  13.        set str1=!str1:8=⑧!
  14.        set str1=!str1:9=⑨!
  15.        set str1=!str1:0=〇!
  16. set /p=!str1!<nul&ping /n 127.1>nul
  17.     )
  18. )
  19. pause>nul
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2