Board logo

标题: [特效代码] [已解决]批处理不换行显示技巧该怎么写? [打印本页]

作者: sgaizxt001    时间: 2010-4-28 07:55     标题: [已解决]批处理不换行显示技巧该怎么写?

  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
  3. for /l %%a in (0,1,3) do (
  4. for /l %%i in (%%a,4,36) do (
  5. call echo.%%str:~%%i,1%%
  6.                           )
  7.                          )
  8. pause
复制代码
如何才能不换行显示呢。

[ 本帖最后由 sgaizxt001 于 2010-4-28 21:56 编辑 ]
作者: Spring    时间: 2010-4-28 09:26

echo不是自己肯定会换行么,你只能把全部放到一个字符串里面再输出:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
  3. set "rs="
  4. for /l %%a in (0,1,3) do (
  5.   for /l %%i in (%%a,4,36) do (
  6.     call set "rs=!rs!%%str:~%%i,1%%"
  7.   )
  8. )
  9. echo.!rs!
  10. pause
复制代码

作者: yangfengoo    时间: 2010-4-28 10:28

  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
  3. for /l %%a in (0,1,3) do (
  4. for /l %%i in (%%a,4,36) do (
  5. call set/p=%%str:~%%i,1%%<nul
  6.                           )
  7.                          )
  8. pause
复制代码
把echo.改为set/p=即可
作者: hanyeguxing    时间: 2010-4-28 19:28

  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
  3. for /l %%a in (0,1,3) do for /l %%i in (%%a,4,36) do set/p=!str:~%%i,1!<nul
  4. echo.
  5. echo.这里开始新的一行
  6. pause
复制代码
1,使用set/p来不换行的显示,需要换行的地方加一个echo.
2,这里为什么使用call 呢?没必要

[ 本帖最后由 hanyeguxing 于 2010-4-28 19:30 编辑 ]
作者: sgaizxt001    时间: 2010-4-28 21:55

谢谢,这是我最终想要的结果
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
  3. for /l %%j in (0,9,27) do (
  4. set "rs="
  5. for /l %%a in (0,1,3) do (
  6.   for /l %%i in (%%a,4,36) do (
  7.     call set "rs=!rs!%%str:~%%i,1%%"
  8.   )
  9. )
  10. call echo.!rs:~%%j,9!
  11. )
  12. pause
复制代码
结果是:
abcdefghi
ABCDEFGHI
123456789
一二三四五六七八九
不过孤星的代码如果要作成这个效果该怎么做呢?
作者: hanyeguxing    时间: 2010-4-28 22:11     标题: 回复 5楼 的帖子

如果仅用于显示,则:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
  3. for /l %%a in (0,1,3) do (
  4. for /l %%i in (%%a,4,36) do set/p=!str:~%%i,1!<nul
  5. echo.
  6. )
  7. pause
复制代码
也就是:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
  3. for /l %%a in (0,1,3) do (for /l %%i in (%%a,4,36) do set/p=!str:~%%i,1!<nul)&echo.
  4. pause
复制代码

作者: hanyeguxing    时间: 2010-4-28 22:15

如果要依次赋值给变量,则:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
  3. for /l %%a in (0,1,3) do (
  4. for /l %%i in (%%a,4,36) do set "ye=!ye!!str:~%%i,1!"
  5. set "han%%a=!ye!"&set ye=
  6. )
  7. set han
  8. pause
复制代码





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