- 帖子
- 48
- 积分
- 75
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2010-10-18
|
[文本处理] 批处理输出彩色文字不能自定义位置,变量延迟是否可以删除?
下面代码有错误的,先看代码,再看问题
@echo off
color 47
call :yanse 40 XP与W7通用垃圾清理
echo.
省略一些代码。。。
call :yanse 40 set /p pwd=选择要清理的内容:
if %pwd%=="QQ" GOTO qq
省略一些代码。。。
:qq
@echo off&setlocal enabledelayedexpansion
for /f "tokens=2 delims=[版本" %%i in ('ver') do (set a=%%i&set b=!a:]=!&set c=!b: =!)
if "%a:~1,3%" equ "6.1" goto qq7
if "%a:~1,3%" equ "5.1" goto qqxp
if "%a:~1,3%" neq "5.1" (if "%a:~1,3%" neq "6.1" echo 你的系统不是xp也不是W7)
:yanse
pushd "%temp%"
>"%~2",set/p= <nul
findstr /a:%~1 .* "%~2*"
del "%~2"
popd
现在整个BAT界面是红色的,文字白色,看我的疑问:
1:原来“XP与W7通用垃圾清理”前面是echo,在BAT界面的中央位置,因为把它的颜色换了黑色,所以导致这几个文字靠界面的左边显示了,不能自定义文字的位置了,求解答!
2:在 set /p pwd前面加上换颜色的代码,BAT界面只显示set,并且整个BAT的界面剧烈颤动,如何使set后面的提示文字也变成彩色,并且界面不颤动
3、如果是“清理 垃圾”被加了颜色,运行后只能显示“清理”,“垃圾”显示不出来,因为中间有空格
4、就是那个变量延迟&setlocal 了,能否去掉???因为在下面还有echo显示文字信息的命令,吧&setlocal 加进去,运行到下面,就会提示echo处于关闭状态了! 大家看看能不能去掉
[ 本帖最后由 360bbs 于 2010-10-25 19:19 编辑 ] |
|