Dears,批处理:“如果输出中的字符串”在psexec(发送命令链)内
我希望你可以帮我用我的小项目。 一段时间以来,我一直在创造一种工具,以较少的工作量更快地处理我的工作,但效率相同。
下面是部分我遇到的麻烦:
@echo off
title Hardware Check
color f
echo """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
echo " _ _ _ ____ _ _ "
echo "| | | | __ _ _ __ __| __ ____ _ _ __ ___/___| |__ ___ ___| | __"
echo "| |_| |/ _` | '__/ _` \ \ /\// _` | '__/ _ | | | '_ \/_ \/ __| |/ /"
echo "| _ | (_| | | | (_| |\ V V | (_| | | | __| |___| | | | __| (__| < "
echo "|_| |_|\__,_|_| \__,_| \_/\_/ \__,_|_| \___|\____|_| |_|\___|\___|_|\_\"
echo """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
echo " "
echo """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
echo.
echo "Which server do you want to check?"
echo.
set /p ans="Machine: "
echo.
psexec \\%ans% cmd /c (^ omreport system^ ^& echo.^ ^& omreport chassis^ ^& echo.^ ^& omreport storage pdisk controller=0^ ^& echo.^ ^& uptime^ ^& echo.^ ^& pause^ ^& echo.^)
echo. | findstr /I /B /C:"status" | findstr /I /C:"critical"
if %errorlevel%==0 (color c) else (color a)
echo.
pause
的想法是,发送命令后,分批应该如果输出数据包含单词“关键”检查,如果是这样,颜色的所有文本,红色,否则颜色为绿色。
文字的例子应该找到并由于条件红色:
Status : Non-Critical
当我运行这个,好像批并不真正关心,如果条件满足与否,它总是色绿。 如果你可以看到哪里是错误的,并有想法如何解决它,并使其工作,我会很感激。
我想这应该读'PSEXEC \\%ANS%CMD/C ^(omreport ...'(注意'^('但你有'(^')...顺便说一下,用引号四周后,命令'CMD/C'避免了需要逃避什么... – aschipfl
在代码这一小部分“”而不是(的)是真实的,但它的代码只是一小部分,而其他部分,其中服务和流程正如我说,不行的部分是一个用着色文字:( – mgj1993