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

[特效代码] [已解决] 请问批处理能逐个字逐个字显示出来的同时,也显示出空格么?

本帖最后由 raymai97 于 2011-8-13 23:56 编辑

如题,如果要实现这个效果不是问题,可以用以下代码:
  1. set text=Hello World
  2. for /l %%i in (0,1,14) do (
  3. set/p=!Text:~%%i,1!<nul
  4. ping -n 2 127.1>nul
  5. )
复制代码
但是会出现问题,就是Hello World会变成HelloWorld
有什么方法可以解决么?
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

你是什么系统啊
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set text=Hello World
  4. for /l %%i in (0,1,14) do (
  5. set/p=!Text:~%%i,1!<nul
  6. ping -n 2 127.1>nul
  7. )
  8. pause>nul
复制代码
XP SP2
1

评分人数

    • CrLf: 乐于助人PB + 5
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

回复 2# wc726842270


    Windows 7 旗舰版~ 看,不会显示空格的~
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

win7 下的 set /p 默认会忽略提示语句中的行首空格、制表符,所以要借退格符绕个弯子:
  1. set text=Hello World
  2. for /l %%i in (0,1,14) do (
  3. set/p=@!Text:~%%i,1!<nul
  4. ping -n 2 127.1>nul
  5. )
复制代码

TOP

回复 2# wc726842270


这种代码在Vista和Win7里面都不好使

TOP

回复 4# CrLf


最后会多出一个@

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set text=Hello World
  4. for /l %%i in (0,1,14) do (
  5.     set /p =@ !Text:~%%i,1!<nul
  6.     ping -n 1 127.1>nul
  7. )
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

还有,把变量赋值放在前面好一些:
  1. @echo off
  2. set text=Hello World!
  3. setlocal enabledelayedexpansion
  4. for /l %%i in (0,1,14) do (
  5.     set /p =@ !Text:~%%i,1!<nul
  6.     ping -n 1 127.1>nul
  7. )
复制代码
1

评分人数

TOP

回复 8# CUer


    成功了!非常感谢你的帮助!!
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

返回列表