同时剪辑和显示结果

Lam*_*miX 5 powershell

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

每次如果我放在| clip最后一行的末尾,输出都会复制到剪贴板,但不会显示在控制台窗口中。

Get-Date | clip
Run Code Online (Sandbox Code Playgroud)

mkl*_*nt0 5

使用公共参数-ov-OutVariable还将Get-Date的输出捕获到一个变量中,然后输出该变量:

Get-Date -ov output | clip; $output
Run Code Online (Sandbox Code Playgroud)

如果您要调用的命令不是cmdlet或高级功能/脚本,因此不支持-OutVariable,则可以改用以下方法:

($output = Get-Date) | clip; $output
Run Code Online (Sandbox Code Playgroud)

这取决于以下事实:将变量赋值包含在其中(...)会传递所赋值。


您可以在自定义功能的帮助下打包此功能:

Function Write-OutputAndClip { $Input | Write-Output -ov output | clip; $output }
Run Code Online (Sandbox Code Playgroud)

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

Set-Alias clipecho Write-OutputAndClip
Run Code Online (Sandbox Code Playgroud)

...您可以简洁地调用它为:

Get-Date | clipecho  # copies output to the clipboard *and* echoes it.
Run Code Online (Sandbox Code Playgroud)


Jas*_*ell 1

经过一番研究后,我认为执行您所要求的操作的唯一方法是在两行单独的行中执行此操作。

$value = Get-Date
Write-host $value
$value | clip
Run Code Online (Sandbox Code Playgroud)

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

Powershell 确实希望将任何内容从写入主机重定向到控制台。而且 Clip 不想在管道中进一步传递任何内容......