返回列表 发帖

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

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

然后是输入文件的..在原基础上改很容易~ ~
::code by Fair_Jm@http://hi.baidu.com/fair_Jm
@echo off&setlocal EnableDelayedExpansion
title 彩色逐字输出您文件内的字符 made by Fair_Jm
color F8
:new
cls
set op=jm
set /p op=请将文本直接拖入:
cls
if "%op%"=="jm" echo 无文本&ping /n 2 127.1 >nul&goto new
for /f "delims=" %%i in ('findstr /n .* "%op%"') do (
    set "z=%%i"
    setlocal enabledelayedexpansion
    set z=!z:*:=!
    call :begin
    endlocal
    echo.
)
echo.&echo.
echo 显示完毕 按回车键重新开始
pause>nul
goto new
:begin
if not defined z (goto :eof)
set /a x=%random%%%9+1
set "o=!z:~0,1!"
set o=!o:^<= !
set o=!o:^>= !
set o=!o:^.= !
set o=!o:^|= !
set o=!o:^&= !
set o=!o:^:= !
set o=!o:^"= !
set o=!o:^\= !
set o=!o:^/= !
set o=!o:t= !
if "!o!"==" " set /p= !z:~0,1!<nul&goto :next
set /p= <nul>"!z:~0,1!" 2>nul&findstr /a:F!x! .* *!z:~0,1! 2>nul&del "!z:~0,1!" 2>nul
:next
set z=!z:~1!
ping /n 1 127.1 >nul
goto :beginCOPY

[ 本帖最后由 基拉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

@echo off
setlocal enabledelayedexpansion
set num=10
set str=#F89ABCDEF
for %%a in (3E 21 22 3A 7C 2E 26 5E 3C) do (
  set /a num-=1
  call set color=%%str:~!num!,1%%
  call :ColorLine %%a 0!color! 000!num!
)
goto :eof
:ColorLine
set "var=A$_MOV,AH,09$_MOV,AL,%1$_MOV,BH,00$_"
set "var=%var%MOV,BL,%2$_MOV,CX,%3$_INT,10$_"
set "var=%var%INT,20$_$_g$_q$_"
echo exit|%ComSpec% /k prompt %var%|debug>nulCOPY
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

返回列表