【问题标题】:PowerShell script to run application (with commands)用于运行应用程序的 PowerShell 脚本(使用命令)
【发布时间】:2016-11-03 04:50:54
【问题描述】:

我正在尝试使用内置命令的应用程序从 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

我还想我可以编写一个批处理文件并将输出写入临时目录并使用下面提到的命令获取这些输出 -

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

【问题讨论】:

    标签: powershell batch-file


    【解决方案1】:

    您可以尝试使用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 @_ }
    

    【讨论】:

    • 您好 ST8Z6FR57ABE6A8RE9UF...如果您有更新请告诉我...我在上一篇文章中提到了我遇到的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    相关资源
    最近更新 更多