![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 08:05 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 【原创】colstr函数---单行输出彩色字符 |
| 可打印版本 6,129 / 38 |
| 第1楼 jvive | 发表于 2008-03-31 21:40 |
| 初级用户 发帖 17 积分 122 | |
|
【原创】colstr函数---单行输出彩色字符 原帖已成古董,
点此下载 更新帖点此:(2楼) http://www.cn-dos.net/forum/viewthread.php?tid=39777&fpage=1 可以处理除了双引号外的任何字符 [ Last edited by jvive on 2009-4-24 at 05:52 ] |
|
| 第2楼 qwd | 发表于 2008-03-31 22:07 |
| 初级用户 发帖 56 积分 161 | |
|
刚写的中国象棋正好需要这个! 顶!
|
|
| 第3楼 zh159 | 发表于 2008-03-31 23:07 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
利用findstr /a:参数来输出彩色字符不错
|
|
| 第4楼 niao22 | 发表于 2008-03-31 23:25 |
| 新手上路 发帖 7 积分 14 | |
|
才搞明白FINDSTR的用法
在文件中寻找字符串。 FINDSTR ] strings filename] /B 在一行的开始配对模式。 /E 在一行的结尾配对模式。 /L 按字使用搜索字符串。 /R 将搜索字符串作为一般表达式使用。 /S 在当前目录和所有子目录中搜索 匹配文件。 /I 指定搜索不分大小写。 /X 打印完全匹配的行。 /V 只打印不包含匹配的行。 /N 在匹配的每行前打印行数。 /M 如果文件含有匹配项,只打印其文件名。 /O 在每个匹配行前打印字符偏移量。 /P 忽略有不可打印字符的文件。 /OFF 不跳过带有脱机属性集的文件。 /A:attr 指定有十六进位数字的颜色属性。请见 "color /?" /F:file 从指定文件读文件列表 (/ 代表控制台)。 /C:string 使用指定字符串作为文字搜索字符串。 /G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。 /D:dir 查找以分号为分隔符的目录列表 strings 要查找的文字。 filename 指定要查找的文件。 除非参数有 /C 前缀,请使用空格隔开搜索字符串。 例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或 "there" 。 'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找 "hello there"。 一般表达式的快速参考: . 通配符: 任何字符 * 重复: 以前字符或类别出现零或零以上次数 ^ 行位置: 行的开始 $ 行位置: 行的终点 字符类别: 任何在字符集中的字符 补字符类别: 任何不在字符集中的字符 范围: 在指定范围内的任何字符 \x Escape: 元字符 x 的文字用法 \<xyz 字位置: 字的开始 xyz\> 字位置: 字的结束 有关 FINDSTR 常见表达法的详细情况,请见联机命令参考。 |
|
| 第5楼 Climbing | 发表于 2008-04-01 00:38 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
还真不容易看懂啊,怎么琢磨的啊?我可是费了将近20分钟的时间才大概看明白是怎么实现的。
关键处在:
其中的set/p=后面是一个退格符,将这个退格符放到%2这个文件中。 %~2应该是将%2这个变量中的所有双引号去掉,"%~2*"表示在前面生成的%2文件名后面加*号(文件中的通配符),查找的内容是.*(匹配任何内容),这样只显示一个文件名,文件内容中的退格则删除了回车字符,实现同行显示不同的颜色。高明,佩服之至,呵呵。 不知道我分析的对不对? |
|
| 第6楼 cooray | 发表于 2008-04-03 14:15 |
| 初级用户 发帖 34 积分 71 | |
|
好东西啊,今天没分了,下次再加
|
|
| 第7楼 Shinaterry | 发表于 2008-04-03 15:08 |
| 初级用户 发帖 51 积分 97 | |
利害利害.. |
|
| 第8楼 qianmo717 | 发表于 2008-04-04 10:10 |
| 初级用户 发帖 32 积分 68 | |
|
学入门教程的时候就被告知,批处理是不能一屏显示多种颜色的,现在这种理论是不是成立呢?
请问“右键暂停,左键继续”是怎样实现的。 [ Last edited by qianmo717 on 2008-4-4 at 10:15 AM ] |
|
| 第9楼 qq43142691 | 发表于 2008-04-04 13:58 |
| 中级用户 发帖 152 积分 326 | |
|
佩服佩服。。
|
|
| 第10楼 Shinaterry | 发表于 2008-04-05 19:33 |
| 初级用户 发帖 51 积分 97 | |
|
不解: 为什么每一次输出, 后面都会莫明其妙多出一个字符":"?
|
|
| 第11楼 plp626 | 发表于 2008-04-05 20:29 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
用的是findstr /a参数,冒号当然会有了
第二个代码给了很丰富的色彩配置,大家根据需要改啊 附图: ![]() [ Last edited by plp626 on 2008-4-23 at 11:44 PM ] |
|
| 第12楼 Shinaterry | 发表于 2008-04-05 20:38 |
| 初级用户 发帖 51 积分 97 | |
|
唉! 算了! 反正可以删除..
|
|
| 第13楼 plp626 | 发表于 2008-04-05 20:49 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
删除什么?
不理解 |
|
| 第14楼 Shinaterry | 发表于 2008-04-07 01:05 |
| 初级用户 发帖 51 积分 97 | |
|
删除冒号!
set "c= 让我们大家一起说 " -> 注意: 只要字符串最后面一带"空格", 运行就会出错.. 请问 LZ/plp626 有没有好的解决方法呢? (需保留最后的空格) |
|
| 第15楼 terse | 发表于 2008-04-07 12:39 |
| 银牌会员 发帖 946 积分 2,404 | |
Originally posted by Shinaterry at 2008-4-7 01:05: @echo off&setlocal enabledelayedexpansion set "a= One World ! " set "b=one Dream ! " set "c=让我们大家一起说 " set "d=︱ bbs.cn-dos.net is our common home! " set "e= {Author∶jvive︱08-03-31︱Thanks to∶9527} " set "f=★★★★★★★★★★★★★★★ " for %%i in ("%a%" "%b%" "%c%" "%d%" "%e%" "%f%") do call:lp %%i pause&exit :lp set /a p=%random%%%14 set "s=12345689abcde" set v=!s:~%p%,1! set /p= <nul >%1 findstr /a:0!v! .* "%~n1*" echo.&echo. del %1 ) |
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |