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

[游戏娱乐] 批处理以彩色输出你输入的字符

在代码咨询区问了问题 但还是自己解决掉了 虽然办法很拙........
这个是要求输入的 等下会做个直接输入文件的...~ ~
好久没练手了  如果觉得做得差就提出来 好让我改正
http://hi.baidu.com/fair_jm是我空间
  1. ::code by Fair_Jm@http://hi.baidu.com/fair_Jm
  2. @echo off&setlocal EnableDelayedExpansion
  3. title 彩色逐字输出您输入的字符 made by Fair_Jm
  4. color F8
  5. set /p z=输入一句话:
  6. :begin
  7. set /a x=%random%%%9+1
  8. set "o=!z:~0,1!"
  9. set o=!o:^<= !
  10. set o=!o:^>= !
  11. set o=!o:^.= !
  12. set o=!o:^|= !
  13. set o=!o:^&= !
  14. set o=!o:^:= !
  15. set o=!o:^\= !
  16. set o=!o:^/= !
  17. set o=!o:^"= !
  18. set o=!o:t= !
  19. if "!o!"==" " set /p= !z:~0,1!<nul&goto :next
  20. set /p= <nul>"!z:~0,1!" 2>nul&findstr /a:F!x! .* *!z:~0,1! 2>nul&del "!z:~0,1!" 2>nul
  21. :next
  22. set z=!z:~1!
  23. ping /n 1 127.1 >nul
  24. if defined z goto :begin
  25. pause>nul
  26. exit
复制代码
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

然后是输入文件的..在原基础上改很容易~ ~
  1. ::code by Fair_Jm@http://hi.baidu.com/fair_Jm
  2. @echo off&setlocal EnableDelayedExpansion
  3. title 彩色逐字输出您文件内的字符 made by Fair_Jm
  4. color F8
  5. :new
  6. cls
  7. set op=jm
  8. set /p op=请将文本直接拖入:
  9. cls
  10. if "%op%"=="jm" echo 无文本&ping /n 2 127.1 >nul&goto new
  11. for /f "delims=" %%i in ('findstr /n .* "%op%"') do (
  12.     set "z=%%i"
  13.     setlocal enabledelayedexpansion
  14.     set z=!z:*:=!
  15.     call :begin
  16.     endlocal
  17.     echo.
  18. )
  19. echo.&echo.
  20. echo 显示完毕 按回车键重新开始
  21. pause>nul
  22. goto new
  23. :begin
  24. if not defined z (goto :eof)
  25. set /a x=%random%%%9+1
  26. set "o=!z:~0,1!"
  27. set o=!o:^<= !
  28. set o=!o:^>= !
  29. set o=!o:^.= !
  30. set o=!o:^|= !
  31. set o=!o:^&= !
  32. set o=!o:^:= !
  33. set o=!o:^"= !
  34. set o=!o:^\= !
  35. set o=!o:^/= !
  36. set o=!o:t= !
  37. if "!o!"==" " set /p= !z:~0,1!<nul&goto :next
  38. set /p= <nul>"!z:~0,1!" 2>nul&findstr /a:F!x! .* *!z:~0,1! 2>nul&del "!z:~0,1!" 2>nul
  39. :next
  40. set z=!z:~1!
  41. ping /n 1 127.1 >nul
  42. goto :begin
复制代码

[ 本帖最后由 基拉freedom 于 2009-8-23 20:02 编辑 ]
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

似乎有特殊字符会出现神奇的现象...
楼主的原意可能是输出一个彩色空格再用特殊字符覆盖
但这样就把颜色信息一起抹杀了...

TOP

特殊字符可以输出 但是没有颜色 如果不是特殊字符 就以颜色输出 在电脑上测试过了 应该没问题了吧 也许是漏了几个特殊字符 出现问题的请提供下

特殊字符以颜色输出感觉好像不太可能.....用findstr必须建立文件 但文件名绝不可能是特殊字符 所以只好把特殊字符按原来的输出了 还有t这个字母(**t)这个也一定要按原来的输出
实际情况就变成这样了 汗....:
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

请注意缩小图片体积 节省论坛空间

TOP

不好意思 以后用png或gif...
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set num=10
  4. set str=#F89ABCDEF
  5. for %%a in (3E 21 22 3A 7C 2E 26 5E 3C) do (
  6.   set /a num-=1
  7.   call set color=%%str:~!num!,1%%
  8.   call :ColorLine %%a 0!color! 000!num!
  9. )
  10. goto :eof
  11. :ColorLine
  12. set "var=A$_MOV,AH,09$_MOV,AL,%1$_MOV,BH,00$_"
  13. set "var=%var%MOV,BL,%2$_MOV,CX,%3$_INT,10$_"
  14. set "var=%var%INT,20$_$_g$_q$_"
  15. echo exit|%ComSpec% /k prompt %var%|debug>nul
复制代码
1

评分人数

    • 基拉freedom: 谢谢帮助 可惜对debug完全不懂 只能看着发呆 ...PB + 5
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP


楼上的代码是如何实现的 能发下地址或看看代码吗?
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

1

评分人数

    • 基拉freedom: 谢谢帮助 但用这个地址里面的似乎连特殊字符 ...PB + 5
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

不知是不是我哪里没有想明白......
command /cecho !z:~0,1! 貌似不支持变量?? 还有用的是echo 除非全部在同一行用[ 否则会换行?就不能有逐字输出的效果......
先说说想法
我再去想想
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

还有我在cn-dos那里复制了代码 把里面的一些字母改成<或者^<均无法显示 难道这个command /cecho不支持吗?
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

试了下,发现有些字母会很神奇响 你试试: Windows XP

TOP

难道我眼花了?
我复制了1楼的文件,执行的时候拖入文件名
我拖入这个批处理,结果执行完了,我整个目录下的文件都被删光了。。。

TOP

for /f "delims=" %%i in ('findstr /n .* "%op%"') do (
这句有问题,只要text里面有这句,就傻了
会有执行”findstr /n .* *“输出打印出来,为什么呢?
神啊

TOP

我明白了,是星号惹的祸。
如果text文件里面有星号,几个星号就傻几次。
会把星号当普通字符,建名字为星号的文件,当然会建文件失败,findstr当然不会失败,删的时候就狠了,问一句莫名其妙的yes or no,yes就全删了。

TOP

返回列表