我认为这已被问了很多次,但我无法找到适合我的答案。从PowerShell运行另一个命令行应用程序
- 我需要从变量中构建命令行。
- 我需要运行该命令行可执行文件。
- 我需要将结果发布到与我的脚本相同的屏幕上。
我试图运行Putty SCP与自定义源和目的地。
我搞砸了&
和Invoke-Expression
但它是不可能的。在PowerShell中,一些简单的#1用例非常难以置信,它们在一切方面都吃得很好。
我能看到做到这一点的唯一方法是在新的Process实例中运行它,并设置所有输出重定向,然后在PS屏幕上完成后将其重新输出。
而且我知道这可能会失败,因为输出缓冲区可能会变满,除非您迷上了事件并将其舀出。
另一种方法是将我的命令行写入批处理文件并运行它。
任何帮助表示赞赏。必须有一个更简单的方法。
编辑
例如:
[string]$scpPath = Find-PathToPuttyScpExecutable;
[string]$scpArguments = "-v -r -pw " + $MarkLogicServerPassword + " " + $MarkLogicSourcePath + " " + $MarkLogicServerUserName + "@" + $ServerName + ":" + $MarkLogicDestinationRootPath
我需要执行$scpPath + " " + $scpArguments
。
第三种方法是用C#写一个小命令,但尽管我已经在这样做了过去,我想避免加载模块。 – 2013-03-20 13:09:43
“我已经搞乱了&和Invoke-Expression,但它不可能” - 我很确定它不是。发布你的代码并指出什么不起作用,并且有人可以尝试提供帮助。否则,这听起来像一个咆哮。 – alroc 2013-03-20 13:14:39
发布exe名称,您需要的参数以及要插入的变量,并提及它们的位置 – 2013-03-20 13:17:35