标题: [特效代码] [已解决] 请问批处理能逐个字逐个字显示出来的同时,也显示出空格么? [打印本页]
作者: raymai97 时间: 2011-8-12 00:32 标题: [已解决] 请问批处理能逐个字逐个字显示出来的同时,也显示出空格么?
本帖最后由 raymai97 于 2011-8-13 23:56 编辑
如题,如果要实现这个效果不是问题,可以用以下代码:- set text=Hello World
- for /l %%i in (0,1,14) do (
- set/p=!Text:~%%i,1!<nul
- ping -n 2 127.1>nul
- )
复制代码
但是会出现问题,就是Hello World会变成HelloWorld
有什么方法可以解决么?
作者: wc726842270 时间: 2011-8-12 02:49
你是什么系统啊- @echo off
- setlocal enabledelayedexpansion
- set text=Hello World
- for /l %%i in (0,1,14) do (
- set/p=!Text:~%%i,1!<nul
- ping -n 2 127.1>nul
- )
- pause>nul
复制代码
XP SP2
作者: raymai97 时间: 2011-8-12 09:33
回复 2# wc726842270
Windows 7 旗舰版~ 看,不会显示空格的~
作者: CrLf 时间: 2011-8-12 09:57
win7 下的 set /p 默认会忽略提示语句中的行首空格、制表符,所以要借退格符绕个弯子:- set text=Hello World
- for /l %%i in (0,1,14) do (
- set/p=@!Text:~%%i,1!<nul
- ping -n 2 127.1>nul
- )
复制代码
作者: CUer 时间: 2011-8-12 12:22
回复 2# wc726842270
这种代码在Vista和Win7里面都不好使
作者: CUer 时间: 2011-8-12 12:22
回复 4# CrLf
最后会多出一个@
作者: CUer 时间: 2011-8-12 12:22
- @echo off
- setlocal enabledelayedexpansion
- set text=Hello World
- for /l %%i in (0,1,14) do (
- set /p =@ !Text:~%%i,1!<nul
- ping -n 1 127.1>nul
- )
复制代码
作者: CUer 时间: 2011-8-12 12:24
还有,把变量赋值放在前面好一些:- @echo off
- set text=Hello World!
- setlocal enabledelayedexpansion
- for /l %%i in (0,1,14) do (
- set /p =@ !Text:~%%i,1!<nul
- ping -n 1 127.1>nul
- )
复制代码
作者: raymai97 时间: 2011-8-13 14:59
回复 8# CUer
成功了!非常感谢你的帮助!!
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |