如何在PowerShell中将命令的输出存储为变量?

时间:2017-02-07 22:06:25

标签: powershell

说我执行命令: git pshu 这会给我:

git: 'pshu' is not a git command. See 'git --help'.

Did you mean this?
        push

如果这是我执行的最后一个命令,我想检索命令并将其输出存储在变量中以供进一步使用。

到目前为止,我尝试过这样的事情:

$var = echo (iex (h)[-1].CommandLine)
$var = iex (h)[-1].CommandLine | Out-String

如何将此类输出保存到变量?

1 个答案:

答案 0 :(得分:0)

假设您正在运行多个命令,并且您想根据其输入存储运行命令。

让我们说您想将不存在的git命令存储为git pshu。我的建议是存储命令并在输出中以"Did you mean..."的形式搜索所需的模式。在这种情况下,您可以按照以下步骤操作:

$output = git pshu *>&1
if ( "$output".indexOf("Did you mean") -ge 0 ) {
write-host "Command '$($(get-history)[$(get-history).count-1].CommandLine)' didnt exist"

其中$(get-history)[$(get-history).count-1].CommandLine将包含最新的运行命令,在此示例中为'git pshu'