标题: [游戏娱乐] 批处理彩字输出 [打印本页]
作者: broly 时间: 2010-7-27 18:12 标题: 批处理彩字输出
献词一首。(水平不高,献丑了)- ::-------------Welcome to www.bathome.net---------------
- @mode con cols=56 lines=12 & @title 献词一首 by Broly
- @echo off&setlocal enabledelayedexpansion
- set m=0
- set str=2367abcdef
- for /f "delims=" %%i in ('more +22 "%~nx0"') do (set "t=%%i" &call :loop)
- echo\ &echo Welcome to www.bathome.net
- pause>nul & exit
- :loop
- if not "!t:~%m%,1!"=="" (
- set /a rnd=%random%%%11
- >"!t:~%m%,1!_",set /p "= "<nul
- findstr /a:0!str:~%rnd%,1! .* "!t:~%m%,1!_*" 2>nul
- ping -n 1 127.1>nul
- del "!t:~%m%,1!_"
- set /a m+=1
- goto loop)
- set m=0
- echo.
- goto :eof
-
- =========分=====割=====线==========
- 念奴娇·赤壁怀古 苏轼
- 大江东去,浪淘尽,千古风流人物。
- 故垒西边,人道是,三国周郎赤壁。
- 乱石穿空,惊涛拍岸,卷起千堆雪。
- 江山如画,一时多少豪杰!
- 遥想公瑾当年,小乔初嫁了,雄姿英发。
- 羽扇纶巾,谈笑间,樯橹灰飞烟灭。
- 故国神游,多情应笑我,早生华发。
- 人生如梦,一樽还酹江月。
复制代码
链接: https://pan.baidu.com/s/1TR8CjbWxmqZwjaxAnanlbw?pwd=mmm7
作者: fish 时间: 2010-7-31 00:50 标题: 水平这么高还说不高,前辈也太谦虚了吧。。。
不过在我这里运行有点小问题,希望前辈帮忙看看
作者: broly 时间: 2010-7-31 09:48 标题: 回复 2楼 的帖子
首先多谢你的关注。
你直接运行批处理就可以了,不要用BatProject运行,会出错。
另外,为了避免复制时会发生一些错误,我把批处理上传了
作者: fish 时间: 2010-7-31 12:06 标题: 哇,太感谢前辈了!
好用好用,太帅了,五彩缤纷五颜六色的,还有动态效果,简直让我怀疑前辈您是不是搞美工的,强赞一个。。。
作者: broly 时间: 2010-7-31 12:58 标题: 回复 4楼 的帖子
呵呵,太过奖了。
其实这些知道了原理,制作这种效果不难的
作者: raymai97 时间: 2010-10-8 00:16 标题: 回复 5楼 的帖子
请教下我原理可以吗?看不明白。
作者: broly 时间: 2010-10-9 17:41 标题: 回复 6楼 的帖子
C:\Windows\System32>findstr /?
/A:attr 指定有十六进位数字的颜色属性。请见 "color /?"
[ 本帖最后由 broly 于 2010-10-9 17:42 编辑 ]
作者: Batcher 时间: 2010-10-9 19:44 标题: 回复 6楼 的帖子
批处理在CMD里显示彩色文字
http://bbs.bathome.net/thread-1852-1-1.html
批处理单行输出彩色字符
http://bbs.bathome.net/thread-1853-1-1.html
批处理单行显示多种颜色字符
http://bbs.bathome.net/thread-1854-1-1.html
批处理显示彩色字符的原理及其中退格符的作用
http://bbs.bathome.net/viewthread.php?tid=1331#pid11864
作者: shujia 时间: 2010-10-24 12:02
lz真是热心人
作者: wc726842270 时间: 2010-10-26 13:35
“set /p "= "<nul”有些不理解,这里面退格符的作用是什么啊?
作者: broly 时间: 2010-10-26 22:23 标题: 回复 10楼 的帖子
批处理显示彩色字符的原理及其中退格符的作用
http://bbs.bathome.net/viewthread.php?tid=1331#pid11864
作者: wc726842270 时间: 2010-10-26 22:54
这个看过了,但还是不能理解,能不能说一下这里它的用途啊,我仅仅明白像这样的- set /p=234567 <nul
- echo wc
复制代码
但这样的理解太过局限了,无法应用到实战啊(最近在网吧上网,连@ECHO OFF都不好使了,所以无法实验,请谅解)
作者: wc726842270 时间: 2010-11-4 09:51
经过了几天的艰熬,终于明白了一些了
作者: broly 时间: 2010-11-4 18:21 标题: 回复 13楼 的帖子
其实原理就在那里,呵呵
作者: wc726842270 时间: 2010-11-4 18:28 标题: 回复 14楼 的帖子
只不过我有点笨了点,一开始理解的太狭隘了,经过反复的实验,问题出现在这吧
- set /a rnd=%random%%%11
- >"!t:~%m%,1!_",set /p "= "<nul
复制代码
这里的">“前一定要在行首,但不知道为什么,我做了以下实验
- @echo off&setlocal enabledelayedexpansion
- cd.
- >"1_",set /p "= "<nul
- findstr /a:2a .* "1_*"
- pause
复制代码
结果是一样的,虽然时间漫长了点,但可算是能应用退格符了。呵呵
[ 本帖最后由 wc726842270 于 2010-11-5 23:02 编辑 ]
作者: broly 时间: 2010-11-5 23:08 标题: 回复 15楼 的帖子
不一定要在行首啊。就是输出嘛,前后都可以。但有些特殊情况是不可以的
作者: wc726842270 时间: 2010-11-5 23:13 标题: 回复 16楼 的帖子
最关键是它一换位置,运行就不对啊,如果真是这样,能否给个简单的代码啊,谢谢了
作者: broly 时间: 2010-11-5 23:27 标题: 回复 17楼 的帖子
哪里出问题了?
比如你要输入 2 到 a.txt 这个文件,你这样就不可以复制代码
要这样才可以复制代码
>> > 这些符号前面如果是1~9 的话就会有异常
[ 本帖最后由 broly 于 2010-11-6 00:16 编辑 ]
作者: wc726842270 时间: 2010-11-5 23:40 标题: 回复 18楼 的帖子
呵呵,例子有些不对啊,1和2经测式都能正常执行,但2的用法倒是头一次见到,
再看看LZ的代码,LZ竟是用“>"!t:~%m%,1!_",set /p "= "<nul”建立的文件,真是巧秒啊,这样文件"!t:~%m%,1!_"也就非空了,才能用FINDSTR /A来执行,真是高人啊
[ 本帖最后由 wc726842270 于 2010-11-5 23:48 编辑 ]
作者: broly 时间: 2010-11-6 00:17 标题: 回复 19楼 的帖子
噢,例子的确错了,悲剧,呵呵。
现在改回来了。
呵呵,你太过奖我了。我只是一个菜鸟而已。
作者: mysuperbat 时间: 2010-11-6 15:30
下来看看,到底是啥效果
作者: lschebin 时间: 2010-11-16 12:57
高手呀!真是的!
作者: vincentzhou 时间: 2010-12-30 15:45
findstr /a:0!str:~%rnd%,1! .* "!t:~%m%,1!_*" 2>nul 中的2代表什么意思呢?用大于等于2的数字替代都能行 但是用用1替代就不行了,而且即使去掉2>nul 这个部分依然能够程序正常运行。
作者: wc726842270 时间: 2010-12-30 19:33 标题: 回复 24楼 的帖子
2>nul 将错误导入空设备中 1>NUL 将标准输出导入空设备中
1>NUL 2>NUL屏蔽信息
作者: howeless 时间: 2010-12-31 10:27
大牛啊!!!!!!!摸派大牛,哈哈
作者: garyng 时间: 2011-8-22 15:37
强!
五彩缤纷的勒~
作者: cjiabing 时间: 2011-8-22 16:14
回复 25# wc726842270
原来你就是“网吧男”,难能可贵啊!~学习的精神令人敬佩!
作者: clonecd 时间: 2012-5-20 13:30
退格符的高级应用,老大真是高人啊。我慢慢学习吧。谢谢分享。
作者: dgyd 时间: 2012-5-29 13:15
挺不错的,支持一下
作者: zaixinxiangnian 时间: 2012-7-11 18:31
虽好多看不懂
我也要花时间研究下
作者: zaixinxiangnian 时间: 2012-7-15 22:37
回复 1# broly
看了下没能看懂
1.FOR 里面的 "%~nx0" 什么意思啊
2.%random%%%11 random不是随机数吗,,,好现这样子是有规率的随机数?
3.>"!t:~%m%,1!_",set /p "= "<nul 什么意思啊?
肯请老大帮忙理解
作者: broly 时间: 2012-7-16 14:12
回复 33# zaixinxiangnian
1.%~nx0的值是本批处理的名字
2.%random%%%11 返回的是0~11之间的随机数
3.这句的意思是把字符串" "保存到一个名为"!t:~%m%,1!_"的文件(里面是由于变量!t:~%m%,1!不同而得到不同的名字)
作者: 狱渊 时间: 2013-4-28 20:52
回复 2# fish
谢谢了 我发现要弄到桌面才可以哦
作者: myping056 时间: 2013-12-19 16:06
运行后,把窗口给关闭了,还得重启计算机,哎
作者: raoletian 时间: 2021-6-27 10:45
不错是不错,就是最后几行运行起来比较卡慢,是什么原因呢?
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |