具有输入和输出文件的 C# 进程
创建新流程时,您可以在启动流程之前为其提供一些 StartInfo。 但是如何将输入/输出提供给参数。 输出可以通过 File.WriteAllLines() 和命令的输出来实现。
但现在我必须实现以下目标:
C:\Windows\System32\inetsrv\appcmd.exe add site /in < iisSite.xml
但是当我们给出
add site /in < iisSite.xml
StartInfo 的参数方法时,appcmd 认为它是它的程序的参数。 看到这个错误
Failed to process input: The parameter
'd:\import\iisSite.xml' must begin with a / or - (HRESULT=80070057).
所以我们需要以某种方式与命令提示符相同的解析来完成它。
可能的是类似 ReadAllLines 的东西并将其用作输入,但我认为也许有更好的解决方案。 有什么建议吗?
提前致谢!
When creating a new process you can give some StartInfo with it before you start the process.
But how would one give the input of/output to parameter.
the output to is achievable through a File.WriteAllLines() with the output of the command.
But now the following must me achieved:
C:\Windows\System32\inetsrv\appcmd.exe add site /in < iisSite.xml
But when we give the
add site /in < iisSite.xml
with the arguments method of StartInfo appcmd thinks it is a parameter for it's program.
See this error
Failed to process input: The parameter
'd:\import\iisSite.xml' must begin with a / or - (HRESULT=80070057).
So we need somehow the same parsing as the command prompt would do it.
What could be possible is something like ReadAllLines and use that as an input, but I thought maybe there is a better solution.
Any suggestions?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
像这样的流重定向是命令处理器 cmd 的一项功能。如果您想这样做,那么您需要调用它并发送您的参数。请参阅本文中的 EDIT2 和 EDIT3。
编辑
直接来自雷蒙德
Stream redirection like that is a feature of the command processor
cmd
. If you want to do that then you need to invoke it and send your arguments. See EDIT2 and EDIT3 in this post.EDIT
And direct from Raymond
使用<不是这样做的方法。使用>
例如:appcmd.exe add site /in > iisSiteExport.xml
并让您的程序吐出所有输出,就像打印到
控制台
一样using < is not the way to do it. Use >
so for example:
appcmd.exe add site /in > iisSiteExport.xml
and have your program spit out all the output as if it was printing to the
Console