c # - Program til at udføre lsnrctl kommando i Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil udføre lsnrctl status kommando ved C # program på Windows platform.
Hvis jeg kører med dette program for at få et resultat, vil det ikke give resultat.


static void Main(string[] args)
{
    System.Diagnostics.Process process = new System.Diagnostics.Process();

    var startInfo = new System.Diagnostics.ProcessStartInfo();
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    // the cmd program
    startInfo.FileName = "cmd.exe";
    // set my arguments. date is just a dummy example. the real work isn't use date.
    startInfo.Arguments = "/c date";
    startInfo.RedirectStandardOutput = true;
    startInfo.UseShellExecute = false;
    process.StartInfo = startInfo;
    process.Start();
    // capture what is generated in command prompt
    var output = process.StandardOutput.ReadToEnd();
    // write output to console
    Console.WriteLine(output);
    process.WaitForExit();

    Console.Read();
}


Hvordan kontrollerer jeg lytterens status på Windows-platformen


Spørg lsnrctl.exe fra Windows Oracle installeret bibliotek.
Når lsnrctl.exe kører på Windows-systemet.
Jeg kan tjekke lytterens status ved at skrive lytterens navn.
LSNRCTL> status


Det vil give status som standard lytter.


Ligeledes kan jeg kontrollere status for et hvilket som helst antal lytterstatus fra prompt.
Jeg vil tjekke dette ved C # programvindues platform.

Bedste reference


Du var så tæt på. Desværre venter din kommando date på, at du indtaster en ny dato. Hvis du ændrer denne linje, som følger, skal din kode fungere fint:


startInfo.Arguments = "/c date /T";  // slash T means: just output the date