Я довольно новичок в PowerShell. Недавно мне было поручено создать всплывающее сообщение об ошибке, которое помогло бы локальному пользователю определить, работает ли слияние БД MS SQL по требованию или нет. Я написал скрипт, который сделал бы следующее:
Запустить пакетный файл, который провел слияние
Считать результаты файла текстового журнала в переменную
Проверьте переменную на наличие вхождений слова «ОШИБКА» и откройте диалоговое окно об успехе или неудаче в зависимости от того, было ли найдено слово ошибка в файле журнала.
Я думал быстро и просто, но мне кажется, что я борюсь с условным утверждением. Вот сценарий:
cmd /c c:\users\PERSON\desktop\merge.bat
$c = get-content c:\replmerg.log
if ($c -contains ("ERROR"))
{
$a = new-object -comobject wscript.shell
$b = $a.popup(“ERROR - Database Merge“,0,”Please Contact Support”,1)
}
else
{
$a = new-object -comobject wscript.shell
$b = $a.popup(“SUCCESS - Database Merge“,0,”Good Job!”,1)
}
Сейчас происходит то, что скрипт запускается и просто переходит к сообщению об успехе. Я могу подтвердить, что простое выполнение команды 'get-content' в powershell само по себе создаст переменную, которую я затем смогу вызвать, и покажет содержимое файла журнала. Однако мой скрипт не выглядит так, как будто он на самом деле проверяет переменную $ c на наличие слова и затем выдает сообщение об ошибке, как и предполагалось. Что мне здесь не хватает?