使用 Set-Clipboard 在 PowerShell 中复制多个文件

Using Set-Clipboard to copy multiple files in PowerShell

我正在尝试使用 PowerShell 中的“Set-Clipboard”命令复制多个文件路径

这里是复制多个文件无效的代码

#Individual paths
$a = "C:\Users\me\test\test1.pdf"
$b = "C:\Users\me\test\test2.pdf"

$paths = '"' + $a + '"' + ', ' + '"' + $b + '"'

#Checking path
Write-Host $paths

#Copying to Clipboard
Set-Clipboard -Path $paths

但下面的代码有效。以下代码将“test1.pdf”和“test2.pdf”从各自的位置复制到剪贴板

Set-Clipboard -Path "C:\Users\me\test\test1.pdf", "C:\Users\me\test\test2.pdf"

但是当这个字符串由代码生成时,它不起作用。

以下也有效

Set-Clipboard -Path $a, $b

就我而言,有很多文件要从不同位置复制。所以,我必须生成一个字符串,其中路径用逗号分隔。

有人能给我指出正确的方向吗?

或者请推荐一种将多个文件路径复制到剪贴板的替代方法。 谢谢

$paths = '"' + $a + '"' + ', ' + '"' + $b + '"' 构造一个 单个字符串 ,而不是一个 数组 ,后者是 Set-Clipboard-Path参数[1]期望。

改用 $paths = $a, $b,通过 ,array constructor operator

在 PowerShell 中从不需要显式双引号存储在变量中的值,即使对于包含空格的值也是如此。


[1]注意跨平台PowerShell (Core) v6+版本不再支持该参数;它只支持复制 text(字符串),大概是因为只提供跨所有平台的最小公分母功能。请参阅 GitHub issue #14758 进行讨论。