我有程序,在我的程序可以继续它正在做的事情之前必须与DOS程序交互。我试图避免我的用户不得不与这个dos程序进行交互。所以,我创建了一个.bat文件来完成我需要做的所有事情,除了最后一步仍然需要我试图避免的用户交互。
具体来说,我输入的命令会在dos提示符处结束,我需要自动输入y然后输入(对提示符说“是”)然后我要退出。
有没有什么方法可以让我自动实现这一点而无需用户输入y并输入?理想情况下,我希望控制台窗口在发生这种情况时不会弹出。
答案 0 :(得分:20)
您可以将'y'字符输入到程序中,如下所示:
echo y | executable.exe
可以输入多行:
(echo y
echo n) | executable.exe
...首先会传递'y'然后传递'n'。
请参阅Microsoft here提示。
答案 1 :(得分:8)
微软的帖子也清楚地说:
请勿在" y"之间键入空格。和管道符号(|)
事实上,我注意到了我的情况
回显y | executable.exe
不起作用 而
回显y | executable.exe
工作正常
答案 2 :(得分:0)
我使用了以下内容,因为“ echo y | executable.exe”对我不起作用
// Write a "Y" to the process's input
proc.StandardInput.WriteLine("Y");
// Now that we've sent the confirmation "Y" wait for the process to exit
proc.WaitForExit();