【发布时间】:2014-12-25 14:39:28
【问题描述】:
我正在尝试将正在从批处理文件调用的 exe(命令行 exe)的输出重定向到日志文件。在此script input.txt 中提供的主机名 IP 地址被重定向到 result.txt。我正在尝试在同一个批处理脚本中运行 .exe,以在我的监控工具中将这些 IP 置于维护模式。脚本运行良好并按预期执行操作,但无法捕获 .exe 的输出。请帮忙。
@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"
如果我直接从命令提示符运行,则从 .exe 输出:
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
【问题讨论】:
标签: batch-file output exe redirect