ich eine C# Konsolenanwendung zu schreiben, die zwei Parameter verwendet: myprogram.exe param1 param2
C# - Console.In.ReadToEnd() hängt von der Benutzereingabe, wenn keine Daten
param2
ist optional, und die Idee ist, wenn es ist nicht vorhanden, verrohrt Daten erhalten:
echo "hithere" | myprogram.exe param1
ich diesen Teil der Arbeit gemacht habe durch Console.In.ReadToEnd()
Erfassung, wenn nur 1 Parameter übergeben wird.
Das Problem, das ich bin Bewurf ist, wenn nur 1 Parameter übergeben wird und keine Daten geleitet werden, es gibt nur sitzt auf Benutzereingaben zu hören und den einzigen Weg ist, zu schließen, um Ctrl+C
das Programm zu beenden.
Gibt es eine Möglichkeit, einen Fehler zurückzugeben und das Programm zu beenden, wenn nur 1 Parameter angegeben wurde und keine Daten gesendet wurden?
Um zu testen, ob es etwas warten, ich habe versucht mit:
Console.OpenStandardInput().CanRead
Console.OpenStandardInput().Length
Console.In.Peek()
Das hat nicht funktioniert.
Ich habe auch den 'Hack' am Ende dieser Stackoverflow Frage ausprobiert: C# Console receive input with pipe.
Irgendwelche Ideen?
Wenn du deine Frage so umformest, dass sie nicht wie eine Textwand aussieht, denke ich, dass du mehr Leute dazu bringen wirst, sie zu lesen. –
Ich stimme Mark zu, es ist ein echter Schmerz zu lesen ... –
Ich habe es jetzt neu formatiert. Ich hoffe, das ist weniger beängstigend zu lesen. – Matt