Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果StandardOutput不是(.NET),则StandardInput不总是重定向_.net_Process_Ipc - Fatal编程技术网

如果StandardOutput不是(.NET),则StandardInput不总是重定向

如果StandardOutput不是(.NET),则StandardInput不总是重定向,.net,process,ipc,.net,Process,Ipc,我想在任务队列中执行外部程序,对我的数据执行一些检查。因此,我启动一个外部流程,通过StandardInput向其提供数据,并读取ExitCode(Errorlevel)以查看是否满足要求 在一个具体的场景中,我想使用find.exe命令来搜索数据文件中的文本。如果在文件中找到文本,则应返回0。根据find.exe-help,应该从StandardInput读取find.exe“Foo”并搜索字符串“Foo” 我没有得到以下信息:当我只重定向InputStream并启动进程时,find.exe立

我想在任务队列中执行外部程序,对我的数据执行一些检查。因此,我启动一个外部流程,通过StandardInput向其提供数据,并读取ExitCode(Errorlevel)以查看是否满足要求

在一个具体的场景中,我想使用
find.exe
命令来搜索数据文件中的文本。如果在文件中找到文本,则应返回0。根据find.exe-help,应该从StandardInput读取
find.exe“Foo”
并搜索字符串“Foo”

我没有得到以下信息:当我只重定向InputStream并启动进程时,find.exe立即返回ExitCode 1(表示未找到字符串或未找到输入文件)。如果我也重定向OutputStream,一切似乎都正常

我还使用
sort.exe
命令(如.NET帮助中的示例所示)进行了测试,在不重定向OutputStream的情况下,一切正常

以下是我的简化代码(VB.net和.NET3.5SP1):

要重现错误行为,请使用

Dim outputFilename As String = Nothing
在上述代码中(第2行)


我在重定向部分遗漏了什么吗?为什么简单的仅输入重定向与
sort.exe
一起工作,而与
find.exe
不一起工作?该代码应该在自动化环境中工作,因此我需要确保至少每次代码都以相同的方式运行。此外,其他用户应能够配置自定义队列。通常建议同时重定向输入流和输出流会有帮助吗?

一些程序只有在stdin和stdout都被重定向的情况下才能正常工作。Xcopy.exe是迄今为止最臭名昭著的例子。也可能是Find.exe,这并不是经常被测试的,因为它很容易被替换。这当然是取得成功的最佳途径。谢谢你提供的信息,汉斯。是否有列出(甚至解释)此示例和其他已知示例的来源?然后,我将在文档中建议始终重定向两个流(如果有)(输出到dummy)。请将您的评论升级为答案,以便我将此标记为已解决。
Dim outputFilename As String = Nothing