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

[特效代码] [已解决]批处理不换行显示技巧该怎么写?

  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 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2
努力学习,努力挣分

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
复制代码

TOP

  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=即可
1

评分人数

TOP

  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 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

谢谢,这是我最终想要的结果
  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
一二三四五六七八九
不过孤星的代码如果要作成这个效果该怎么做呢?
努力学习,努力挣分

TOP

回复 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
复制代码
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

如果要依次赋值给变量,则:
  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
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表