3 Answers
Best Answer
感谢两位,问题解决了,如下:
$process = new-object System.Diagnostics.Process $process.StartInfo.FileName = "CMD.exe" $process.StartInfo.Arguments = " /c dir|pause" $process.StartInfo.UseShellExecute = 0 $process.StartInfo.RedirectStandardInput = 0 $process.StartInfo.RedirectStandardOutput = 1 $process.StartInfo.RedirectStandardError = 1 $process.StartInfo.CreateNoWindow = 1 $process.StartInfo.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden; $process.Start() $error_info = $process.StandardError.ReadToEnd() $result = $process.StandardOutput.ReadToEnd()
感谢分享!
Start-Process 返回的是一个system.diagnostics.process (.NET)对象。它本身有属性:
获取用于读取应用程序错误输出的流。
获取用于写入应用程序输入的流。
获取用于读取应用程序输出的流。
$Process = New-Object System.Diagnostics.Process
$Process.StartInfo.FileName = “CMD.exe”
$Process.StartInfo.Arguments = ” /c dir|pause”
$Process.StartInfo.UseShellExecute = $false
$Process.StartInfo.RedirectStandardInput =$true
$Process.StartInfo.CreateNoWindow = $false
$Process.Start()
$Process.StandardOutput.ReadToEnd()
这个似乎有点问题,我从C#转换过来的。