0
으로 보내고 있습니다. 배치 파일에서 로그 파일로 호출되는 exe (commanline exe)의 출력을 리디렉션하려고합니다. 이 script에서 input.txt에 제공된 호스트 이름의 IP 주소가 result.txt로 리디렉션됩니다. 동일한 배치 스크립트 내에서 .exe를 실행하여 모니터링 도구에서 유지 관리 모드로 IP를 배치하려고합니다. 스크립트가 제대로 실행되고 예상대로 작업을 수행하지만 .exe에서 출력을 캡처하지 못합니다. 도와주세요. 내가 명령 프롬프트에서 직접 실행하는 경우 .EXE에서배치 스크립트 내의 .exe 출력을 txt 파일
@echo off
setlocal enabledelayedexpansion
set OUTPUT_FILE=result.txt
>nul copy nul %OUTPUT_FILE%
for /f %%i in (input.txt) do (
set SERVER_ADDRESS=ADDRESS N/A
for /f "tokens=1,2,3" %%x in ('ping -n 1 %%i ^&^& echo SERVER_IS_UP') do (
if %%x==Pinging set SERVER_ADDRESS=%%y
if %%x==Reply set SERVER_ADDRESS=%%z
if %%x==SERVER_IS_UP (set SERVER_STATE=UP) else (set SERVER_STATE=DOWN)
)
echo !SERVER_ADDRESS::=!>>%OUTPUT_FILE%
)
start c:\MaintenanceMode.exe ON %OUTPUT_FILE% %USERNAME% >> "c:\result2.txt"
출력 :
PS C:\> .\MaintenanceMode.exe ON C:\result.txt username
Not an IP!!
Reading IPs from File: C:\result.txt
Valid Arguments
System put into MM Host# 10.*.*.* Status# Success
System put into MM Host# 10.*.*.* Status# Success