2017-04-05 3 views
0

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 

정말 녹색하기에 항상 색상, 조건이 충족되는 경우 신경이나하지 않는다 . 실수가 어디 있는지 확인하고 문제를 해결하고 작동하게하는 방법을 생각하면 감사하게 생각합니다.

+0

필자는'psexec \\ % ans % cmd/c^(omreport ...')를 읽어야한다고 생각한다. ('^ ('하지만''(^') 'cmd/C' 명령 다음에 명령을 사용하면 아무 것도 벗어날 필요가 없습니다 ... – aschipfl

+0

() 대신이 작은 부분의 코드는 사실이지만 코드의 작은 부분 일뿐 아니라 서비스와 프로세스 공정 온라인 견적 마크가 필요하다 시작됩니다. 을 나는 작동하지 않는 부분이 지금까지 내가 당신이 그것을 표시하는 방법을 해결하는 방법을 생각하는 시간을 보냈다 :( – mgj1993

답변

0

출력의 이 아닌 echo.의 출력에서 ​​"상태"와 "중요"을 찾고 있습니다. echo.은 줄 끝보다 더 많은 내용을 출력하지 않으므로 배치 파일은 "상태"및 "중요"단어를 찾지 않으며 색상은 항상 녹색입니다. 더 간단하게 코드를 넣어 :

echo. | findstr /I /B /C:"status" | findstr /I /C:"critical" 
if %errorlevel%==0 (color c) else (color a) 

color a에 엄격하게 동일합니다.

원격 시스템의 파일에서 원격 명령의 출력을 캡처하고 해당 파일을 로컬 시스템에 복사 한 다음 findstr을 사용하여 복사 된 파일을 살펴야 할 수도 있습니다.

+0

색 텍스트입니다 말했듯이. 를 psexec에 명령을 전달 psexec에 후 아무것도를 추가 한 후 도 시작하지 않는다 – mgj1993

+0

@ mgj1993 : 나는 왜 당신이'cmd'에 전달한 명령을 정확히 읽지 않았다고 고백한다. 그 이유는 색이 항상 녹색 인 이유이기 때문이다. uestion은 정확합니다 - 당신은'color a'라고하는 매우 복잡한 방법을 사용하고 있습니다. 특정 유스 케이스의 경우, 원격 시스템의 파일에서 원격 명령의 출력을 캡처하고, 해당 파일을 로컬 시스템에 복사하고, 'findstr'을 사용하여 복사 된 파일을 조사해야합니다. – AlexP

+0

내가 할 수 있으면 좋겠다. 'cmd를/C "어떤 명령> \\ LocalMachine \ 임시 \과 Output.txt - 또 ​​다른 제한은'실행 어디 (모든 컴퓨터에 하나를 :( – mgj1993

관련 문제