Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 根据条件更改批处理文件中的字体颜色_Windows_Batch File - Fatal编程技术网

Windows 根据条件更改批处理文件中的字体颜色

Windows 根据条件更改批处理文件中的字体颜色,windows,batch-file,Windows,Batch File,我正在寻找一个批处理脚本中的命令,可以根据结果更改字体颜色。它是这样的: 批处理脚本用于检查日期条件&如果成功,将文件从一个文件夹复制到另一个文件夹。如果没有,则表示“0个文件已复制。未找到文件” 我的要求是,仅此“0个文件已复制。未找到文件”消息应以红色显示,以便轻松捕获 谢谢你在这方面的帮助 在显示“已复制0个文件”消息之前,输入以下命令: 颜色04 我假设您希望在之后将屏幕颜色恢复为默认颜色。批处理文件末尾可能会有一个暂停。暂停后,放入: 颜色正如我在评论中所说,有很多方法可以做到这一点。

我正在寻找一个批处理脚本中的命令,可以根据结果更改字体颜色。它是这样的: 批处理脚本用于检查日期条件&如果成功,将文件从一个文件夹复制到另一个文件夹。如果没有,则表示“0个文件已复制。未找到文件”

我的要求是,仅此“0个文件已复制。未找到文件”消息应以红色显示,以便轻松捕获


谢谢你在这方面的帮助

在显示“已复制0个文件”消息之前,输入以下命令:

颜色04

我假设您希望在之后将屏幕颜色恢复为默认颜色。批处理文件末尾可能会有一个暂停。暂停后,放入:


颜色

正如我在评论中所说,有很多方法可以做到这一点。我个人最喜欢的:

set "write=powershell write-host -foreground"
%write% red this failed
%write% green success

您可以使用powershell help write host获得有效的颜色(或者您可以使用类似于
color/?
的数字,例如
%write%13洋红

no
cmd
本机方式。谢谢你的回复。问题是,我不知道这个消息何时会显示,因为它取决于环境。此系统消息仅在条件失败时显示。我现在怎么能在代码中给出它呢?我以为你是在自己检查条件——如果不是,这种方法就行不通了。您是否考虑过检查条件并在失败时设置颜色,而不是将检查作为整个命令的一部分?谢谢。是的,我确实从这个角度考虑过,但我发现很难做到这一点。我的日期条件检查是这样的:获取文件最后修改的时间戳并将其中的月份与当前月份进行比较。如果计算结果为“是”,则复制该文件,否则将抛出错误消息。此错误消息应为红色。有什么帮助吗?嘿,谢谢你的回复。只是一个问题:“0个文件已复制。找不到文件”这是当日期条件不满足时系统生成的消息。你建议的方法也适用于此?显然不行。只要
cmd
再次得到控制,颜色就会丢失。您必须编写自己的STDOUT/STDERR解析器(
command>STDOUT.txt.2>STDERR.txt
并自己处理文本文件(读取行并分别彩色打印)。如果%errorlevel%==1%写入%red CustomFailureMessage怎么办?
?谢谢。我对%errorlevel%==1%写入%red CustomFailureMessage这种方法感兴趣。类似于如果%errorlevel%neq为0,则显示彩色消息。我不太喜欢powershell。在将此方法作为批处理文件的一部分使用时,您是否可以提供一些帮助?
如果%errorlevel%neq 0%write%red出现故障
。没有
然后批量
。无需搞乱powershell,因为您只使用了其中的一个命令(并且已经将其“翻译”为批处理
%write%
)。只需像批处理命令一样使用
%write%
。我试过了“红色”未被识别为内部或外部命令。我想我错过了什么。