原帖由 jellyhk 于 2008-10-6 19:21 发表
本人初学!
问下 斑竹是怎么做到bat和home的颜色不一?
我怎么没看见color??请教!
颜色是在这个标签内实现变化的:- :sp
- if %1 neq "no" set /p= <nul>%1&findstr /a:1%a% .* %1*
- for /l %%i in (1,1,%2) do set /p= <nul
- del /q %1*>nul 2>nul&goto :eof
复制代码 在cmd中键入findstr /?,你会看到这样一行: [/A:attr 指定有十六进位数字的颜色属性。
请见 "color /?"],但这样的帮助信息会让你看得云里雾里,我就结合上面的代码来稍做下
说明:当findstr 后面跟/a:的开关时将会以紧跟在":"号后的两个颜色编码(前面一个是背景
,后面的一个是字符颜色)来输出查找内容(注意这个内容是彩色的文件名加":"号,后面
紧跟文件本身内容),我们先来段代码以帮助理解:
有文本a.txt内容如下- bathome is the best webbbs
复制代码 在cmd中键入findstr /a:1f .* *a.txt(注意后面的*是通配符是必加的)
你会发现会输出如下内容:
现在如文本内容为空,是不是仅会输出彩色的文件名了加":"号了,那么我们怎么去掉这个":"
号呢,我们就来认识一下神奇的退格符""了,退格符顾名思义就是退一格,而这个退一格
是将光标退一格,那么当标退格后再次输入的内容将会覆盖前面的内容,于是我们只要在a.txt
中输入" "(退格符+空格+退格符)是不是就将这个":"去掉了,而当sp标签的第一句命令:
if %1 neq "no" set /p= <nul>%1&findstr /a:1%a% .* %1*中的%a%和%1两个参数发生变化
屏幕输出内容和输出颜色就会相应进行变化,只是这样会每次生成一个以%1命名的文件,所以
标签中最后来个句:del /q %1*>nul 2>nul&goto :eof输出后再将生成的临时文件删除。
[ 本帖最后由 batman 于 2008-10-6 21:06 编辑 ] |