コンソールアプリケーションThirdPartyApplications.exeがあります。これはWindowsサービスから実行する必要があります。 コンソールアプリケーションが私に報酬を与える:OK、NOT OK、ERROR。Windowsサービスからコンソール出力をどのように読み込みますか?
Windowsサービスでこれらの応答をキャプチャする必要があります。
私は機能
using (var p = new System.Diagnostics.Process())
{
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = @"C:\ThirdPartyApplications.exe";
p.StartInfo.Arguments = "3";
p.Start();
string o = p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
どのように私はこの出力をキャプチャすることができますを作成しましたか?
EDIT
using (var p = new System.Diagnostics.Process())
{
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = @"C:\ThirdPartyBatch.bat";
p.StartInfo.Arguments = "file.zip -user.properties";
p.Start();
string o = p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
バッチファイルは、私が持っている場合は、私の変数Oで、私はメッセージを取得しない、ここでは "コード10"
@echo off
call run.bat %* 1>log\out.txt 2>log\err.txt
@echo code %ERRORLEVEL%
exit /B %ERRORLEVEL%
ある
ここで、「Hel LO」が、私はバッチファイル
@ECHO off
call run.bat %* 1>log\out.txt 2>log\err.txt
ECHO Hello
PAUSE
を変更した場合、私はメッセージを取得していない 『』
任意の助けをこんにちは!
コードにどのような問題がありますか? –
これで作業が始まります。しかし、私は今、別の状況があります。バッチファイル '@echo off call run.bat%* 1> log \ out.txt 2> log \ err.txt @echoはコード%ERRORLEVEL% 終了/ B%ERRORLEVEL%'で終了します。私がcmdからこれを始めると、終了コードが出ますが、私のWindowsサービスではoは空です。 – cashmere