2016-03-23 5 views
0

Я ищу команду в пакетном скрипте, которая может изменить цвет шрифта на основе результата. его вот так: Пакетный скрипт используется для проверки состояния даты &, если он преуспеет, скопируйте файлы из одной папки в другую. Если нет, то «0 файлов скопировано. Файл не найден».Изменить цвет шрифта в пакетном файле на основе условия

Мое требование состоит в том, что сообщение «0 файлов скопировано. Файл не найден» должно появляться красным цветом, чтобы его легко было поймать.

Оцените справку по этому вопросу!

+1

нет 'cmd' родного пути. Вы можете [найти полезные ответы на stackoverflow] (http://stackoverflow.com/search?q=%5Bbatch-file%5D+color+line) – Stephan

ответ

0

Просто перед выводом на экран сообщения «0 файлов скопировали», поместите эту команду:

цвета 04

Я предполагаю, что вы хотите, чтобы вернуть цвет экрана по умолчанию после этого. Вероятно, у вас будет пауза в конце командного файла. После паузы, говоря:

цвет

+0

Эй, спасибо за ответ. Дело в том, что я не знаю, когда этот msg будет отображаться, поскольку он зависит от состояния. Эта системная msg отображается только тогда, когда условие терпит неудачу. Как я могу дать его сейчас в коде? –

+0

Я думал, что вы сами проверяете это условие - если нет, этот подход не сработает. Рассматривали ли вы проверку состояния и установку цвета, если он терпит неудачу, вместо того, чтобы оставлять чек как часть общей команды? – Resource

+0

Спасибо. Да, я подумал об этом, но мне было трудно это понять. Моя проверка состояния даты выглядит примерно так: получите последнюю измененную метку времени файла и сравните месяц с ней с текущим месяцем. Если он оценивает значение «ДА», затем скопируйте файл, иначе появится сообщение об ошибке. Эта ошибка msg должна иметь цвет RED. Любая помощь? –

0

Как я уже сказал в своем комментарии, есть several ways сделать это. Мой личный фаворит:

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

вы можете получить действительные цвета с powershell help write-host (или вы можете использовать номера, как, например color /?%write% 13 magenta)

+0

Эй, спасибо за ответ. Просто вопрос: «Скопировано 0 файлов. Файл не найден», это сообщение сгенерировано системой, когда условие даты не удовлетворено. Ваш предложенный метод будет работать и для этого? –

+0

явно нет. Как только 'cmd' снова получит contrlol, цвет будет потерян. Вам нужно будет написать собственный синтаксический анализатор STDOUT/STDERR ('command> stdout.txt. 2> stderr.txt' и обработать свой собственный текстовый файл (чтение строк и цветная печать их отдельно)). Что относительно 'if% errorlevel% == 1% write% red CustomFailureMessage'? – Stephan

+0

Спасибо. Меня интересует, если% errorlevel% == 1% write% red CustomFailureMessage этот подход. Что-то вроде, если% errorlevel% neq 0, затем цветное сообщение. Я не сильно могу сказать. Возможно ли вам оказать некоторую помощь в использовании этого метода в составе моего пакетного файла? –

Смежные вопросы