【发布时间】:2014-02-09 14:26:25
【问题描述】:
我正在开发一个为 D&D 游戏生成当天天气的程序。我希望程序在产生风暴时以红色文本显示警告,以便 DM 知道这种天气不典型。为了减少击键次数,它必须在与详细描述天气本身的文本相同的屏幕上执行此操作。
目前对于风暴的条目,我有这个:
:des4a
cls
type c:\AutoDM\WeatherGen\data\forcast1.txt
color 0c
echo There is an Ashstorm!
color 0a
echo.
echo It is %temp% degrees and the sky is invisible threw the thick
echo billowing clouds of ash.
echo.
echo # Survival checks to light a fire are at +15.
echo # Small unprotected flames will be snuffed out.
echo # Non-firearm ranged attacks are at a -8 to hit.
echo # Preception checks take a -10 for every 10 feet of distance.
echo # Survival checks to get along in the wild are at +15.
echo # Stealth checks are at a +5.
echo.
echo SPECIAL!
echo.
set /a die=6
set /a inches=%random%%%die+1
echo # The ashstorm will deposit %inches% inches of ash durring its
echo durration.
echo # Tracking a target after an ashstorm is at a +15.
type c:\AutoDM\WeatherGen\data\forcast2.txt
echo.
echo.
pause
goto menu
类型命令调用文本文档,其中包含每个条目的页眉和页脚,以帮助程序看起来更专业,并提供边框以帮助自动换行。你不能被删除。请不要提出使我无法使用当前存在的类型命令的建议。请理解,这个红色文本行将添加到程序的许多不同部分,每次生成器中的每个生物群落都会产生风暴。我希望它不超过 2 或 3 行代码(但如果只有一种方法可以做得很好......)
我可以将一条线用红色,其余的线用绿色吗?或者我应该让程序发出哔哔声来提醒人们注意这个事实吗?你有更好更简单的想法吗?我该怎么做?
【问题讨论】:
-
@Stephan 不。那是在同一行中不止一种颜色。我需要屏幕上的一条线一种颜色,另一种颜色。该答案并没有解释如何很好地实现代码。每次您需要使用一种以上的颜色时,所有这些都会被放下吗?是否在开头放置一次然后使用命令词?它只是对我来说解释得不够好。
-
不能用简单的标准批处理命令来完成。涉及的脚本可以在一行上打印颜色,或者第三方工具可以做到这一点。 Microsoft 颜色命令只会改变整个屏幕。
-
@SeanMcLain - 嗯,仅仅因为解决方案允许在一行上使用多种颜色并不意味着您必须有多种颜色。链接的解决方案甚至解释了如何使用
ECHO(来终止线路以准备下一条。
标签: batch-file