同时剪辑和显示结果

时间:2017-09-06 21:35:30

标签: powershell

如何使用clip并同时显示输出?

每次如果我将| clip放在结束行的末尾,输出就会被复制到剪贴板,但不会显示在控制台窗口中。

Get-Date | clip

2 个答案:

答案 0 :(得分:4)

使用常用参数-ov-OutVariable来捕捉变量中的Get-Date输出,然后输出该变量:

Get-Date -ov output | clip; $output

如果您调用的命令不是cmdlet或高级函数/脚本,因此不支持-OutVariable,则可以使用此技术:

($output = Get-Date) | clip; $output

这取决于将(...)中的变量赋值括起来传递指定值的事实。

您可以借助自定义功能打包此功能

Function Write-OutputAndClip { $Input | Write-Output -ov output | clip; $output }

如果您还为其定义了别名,请说出clipecho ...

Set-Alias clipecho Write-OutputAndClip

...你可以简洁地调用它:

Get-Date | clipecho  # copies output to the clipboard *and* echoes it.

答案 1 :(得分:1)

在仔细研究之后,我认为做出你所要求的唯一方法是分两行进行。

$value = Get-Date
Write-host $value
$value | clip

一行看起来像$value = Get-Date;$value;$value|clip

Powershell确实希望将任何东西从write-host重定向到控制台。并且剪辑不想传递任何进一步的管道...