
标题: [特效代码] [已解决]批处理不换行显示技巧该怎么写? [打印本页]
作者: sgaizxt001 时间: 2010-4-28 07:55 标题: [已解决]批处理不换行显示技巧该怎么写?
- @echo off&setlocal enabledelayedexpansion
- set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
- for /l %%a in (0,1,3) do (
- for /l %%i in (%%a,4,36) do (
- call echo.%%str:~%%i,1%%
- )
- )
- pause
复制代码
如何才能不换行显示呢。
[ 本帖最后由 sgaizxt001 于 2010-4-28 21:56 编辑 ]
作者: Spring 时间: 2010-4-28 09:26
echo不是自己肯定会换行么,你只能把全部放到一个字符串里面再输出:- @echo off&setlocal enabledelayedexpansion
- set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
- set "rs="
- for /l %%a in (0,1,3) do (
- for /l %%i in (%%a,4,36) do (
- call set "rs=!rs!%%str:~%%i,1%%"
- )
- )
- echo.!rs!
- pause
复制代码
作者: yangfengoo 时间: 2010-4-28 10:28
- @echo off&setlocal enabledelayedexpansion
- set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
- for /l %%a in (0,1,3) do (
- for /l %%i in (%%a,4,36) do (
- call set/p=%%str:~%%i,1%%<nul
- )
- )
- pause
复制代码
把echo.改为set/p=即可
作者: hanyeguxing 时间: 2010-4-28 19:28
- @echo off&setlocal enabledelayedexpansion
- set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
- for /l %%a in (0,1,3) do for /l %%i in (%%a,4,36) do set/p=!str:~%%i,1!<nul
- echo.
- echo.这里开始新的一行
- pause
复制代码
1,使用set/p来不换行的显示,需要换行的地方加一个echo.
2,这里为什么使用call 呢?没必要
[ 本帖最后由 hanyeguxing 于 2010-4-28 19:30 编辑 ]
作者: sgaizxt001 时间: 2010-4-28 21:55
谢谢,这是我最终想要的结果- @echo off&setlocal enabledelayedexpansion
- set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
- for /l %%j in (0,9,27) do (
- set "rs="
- for /l %%a in (0,1,3) do (
- for /l %%i in (%%a,4,36) do (
- call set "rs=!rs!%%str:~%%i,1%%"
- )
- )
- call echo.!rs:~%%j,9!
- )
- pause
复制代码
结果是:
abcdefghi
ABCDEFGHI
123456789
一二三四五六七八九
不过孤星的代码如果要作成这个效果该怎么做呢?
作者: hanyeguxing 时间: 2010-4-28 22:11 标题: 回复 5楼 的帖子
如果仅用于显示,则:- @echo off&setlocal enabledelayedexpansion
- set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
- for /l %%a in (0,1,3) do (
- for /l %%i in (%%a,4,36) do set/p=!str:~%%i,1!<nul
- echo.
- )
- pause
复制代码
也就是:- @echo off&setlocal enabledelayedexpansion
- set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
- for /l %%a in (0,1,3) do (for /l %%i in (%%a,4,36) do set/p=!str:~%%i,1!<nul)&echo.
- pause
复制代码
作者: hanyeguxing 时间: 2010-4-28 22:15
如果要依次赋值给变量,则:- @echo off&setlocal enabledelayedexpansion
- set "str=aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九"
- for /l %%a in (0,1,3) do (
- for /l %%i in (%%a,4,36) do set "ye=!ye!!str:~%%i,1!"
- set "han%%a=!ye!"&set ye=
- )
- set han
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |