用于运行应用程序的PowerShell脚本(带命令)

时间:2016-06-30 22:20:22

标签: powershell batch-file

我正在尝试使用内置命令的应用程序从C:\ Program Files \ APP \ app.exe运行应用程序。当我从命令提示符运行时,我可以得到我想要的结果。但我想使用脚本来检查服务器的其他组件以及这个以避免手动运行此命令。我尝试了下面提到的两个脚本&我没有得到任何输出。它只是打开一个命令提示符窗口,运行结果,并关闭命令提示符,但我想在输出文件中获取输出。有什么建议?请告诉我。

$Output = "C:\Information.txt"
Start-Process -FilePath "C:\Program Files\APP\app.exe" -ArgumentList "query mgmtclass" | Out-File $Output

另外,我也试过 -

$Output = "C:\Information.txt"
Start-Process -FilePath "C:\Program Files\APP\app.exe" -PipelineVariable "query mgmtclass" | Out-File $Output

我还以为我可以写一个批处理文件&得到写在temp目录中的输出&使用下面提到的命令获得那些输出 -

Get-Content -Path 'C:\Program Files\tivoli\tsm\baclient\dsmerror.log' | select-object -last 15

1 个答案:

答案 0 :(得分:0)

您可以尝试使用RedirectStandardOutput参数代替| Out-File

$Output = "C:\Information.txt"
Start-Process -FilePath "C:\Program Files\APP\app.exe" -PipelineVariable "query mgmtclass" -RedirectStandardOutput $Output

更新

你得到的错误("缺少一个论点")正是它所说的。我无法看到您运行的代码行以获取错误,但我可以通过省略RedirectStandardOutput的值来复制。此示例使用splatting,因此代码行不会太长,您可以更清楚地看到RedirectStandardOutput是什么:

$Output = "C:\Information.txt"
@{
   FilePath = "C:\Program Files\APP\app.exe"
   PipelineVariable = "query mgmtclass"
   RedirectStandardOutput = $Output
} | % { Start-Process @_ }