有一种情况,我需要根据从命令提示符窗口接收到的输出连续读取,写入和处理一些内容。例如,如果命令窗口正在查找输入,我需要向用户显示一个消息框。有没有办法做到这一点?是否有一个API来处理与Windows命令提示符?
1
A
回答
3
通过Process对象,您可以重定向标准输入和输出。
所以,你会做类似下面的...
var proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = "C:\\YourExeGoesHere.exe";
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardInput = true;
proc.Start();
var thisComesFromTheProcess = proc.StandardOutput.ReadLine();
proc.StandardInput.WriteLine("this goes to the process");
你可能想看看Process.OutputDataReceived事件时输出数据被写入通知,但这应该让你在正确的轨道上,有是涵盖OutputDataReceived事件的其他SO帖子。
1
我会让命令行应用程序启动一个WPF可执行文件。
让WPF打开socket/web api主机等来监听其他命令。
当命令行需要用户输入时,让它运行一个批处理,它将一个请求提交给WPF应用程序,与telnet session没有什么不同。您可以使此调用异步或等待响应。
WPF可以打开通知,询问用户输入。用户输入参数并将其提交回到启动连接的上面的命令行,从而允许批处理文件继续处理。
或者,如果您可以使用Powershell,而不是标准CommandLine,则可能会使用this。你甚至可以打开文件对话框如this。
这些是你的选择,我能想到的,但是是的,它会成为一个PITA,祝你好运。
相关问题
- 1. 在Windows命令提示符下处理多个perl脚本
- 2. 是否有更好的Windows命令提示符?
- 3. 命令提示符批处理文件
- 4. “Node.js命令提示符”和Windows命令提示符有什么区别?
- 5. Windows命令提示符 - '调试'不是一个公认的命令?
- 6. 是否有一些jsp脚本可以打开Windows的命令提示符?
- 7. 不使用任何命令提示符处安装没有命令提示符
- 8. Visual Studio命令提示符与常规命令提示符?
- 9. 是否有运行或命令提示符命令来更改Windows中的背景图像?
- 10. 命令提示符:检查Windows服务是否启动
- 11. 显示%(的Windows 10命令提示符)
- 12. 命令在命令提示符工作,但不是在批处理文件
- 13. 从命令提示符处复制和重命名文件(Windows)
- 14. 在Windows单线运行多个命令命令提示符
- 15. 批处理文件以确定是否使用命令提示符
- 16. 在Windows提示符下使用一个启动命令执行3个命令
- 17. “没有足够的存储是可用来处理此命令”,在与Windows 7
- 18. Windows批处理 - 检查一个命令变量是否出现在另一个命令变量中
- 19. 是否有显示Unicode字符的Windows命令shell?
- 20. Ruby在Windows命令提示符下
- 21. Windows命令提示符:逃避引号
- 22. windows命令提示符快捷键
- 23. Windows命令提示符更改
- 24. Windows PowerShell:更改命令提示符
- 25. 命令提示符中的VIM Windows 10
- 26. 从Python控制Windows命令提示符
- 27. Windows SDK 7.1命令提示符LNK1104
- 28. 从Windows命令提示符运行R
- 29. 从Windows命令提示符使用ssh
- 30. Windows命令提示符 - 空目录
消息框不是允许用户输入输入的好方法。没有超出是/否/取消。这个问题有一个共同的问题,它根本不解释为什么这是必要的。所以猜测你真正需要的是不可能的。 –
你应该看看PowerShell,它有一个完整的API –
@JohnSaunders,这取决于OP试图实现什么,以及为什么... –