Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата megaloman:
2. Если в тексте есть слово degraded и нет rebuilding, выводить "-1" (именно с минусом) »
Ну, вообще-то коды возврата должны описываться целым беззнаковым. -1 — это 0xFFFFFFFF, обычно резервируется для неопознанных ошибок или общих сбоев.


Цитата zegordo:
Iska, выглядит так, что ничего не изменилось »
Возвращаясь к:
Цитата zegordo:
> -o : invalid object '-vd' »
Там у Вас изначально не только ноль был вместо буквы o, но и ненужный дефис - перед vd. В справке утилиты, которую Вы выложили, описан правильный формат.

Я попробовал и вариант с echo и с командной строкой, и тот, и тот, как и ожидалось, работают. При использовании echo потребно использование exit для выхода из утилиты, при использовании командной строки, понятное дело, сие не требуется.

Вариант с echo
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

(
	echo info -o vd
	echo exit
) | c:\mvsetup.exe | find.exe /i "degraded" && (
	(
		echo info -o vd
		echo exit
	) | c:\mvsetup.exe | find.exe /i "rebuilding" && (
		echo Status: Degraded and rebuilding
		exit /b 1
	) || (
		echo Status: Degraded
		exit /b 2
	)
) || (
	echo Status: Successfull
	exit /b 0
)

endlocal
exit /b 0

Вариант с командной строкой
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

c:\mvsetup.exe info -o vd | find.exe /i "degraded" && (
	c:\mvsetup.exe info -o vd | find.exe /i "rebuilding" && (
		echo Status: Degraded and rebuilding
		exit /b 1
	) || (
		echo Status: Degraded
		exit /b 2
	)
) || (
	echo Status: Successfull
	exit /b 0
)

endlocal
exit /b 0



P.S. И всё же утилита не совсем CLI, поскольку ошибки пишет не как положено — в stderr, а, похоже, напрямую в консоль .
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:32, 06-04-2018 | #21