首页 > 解决方案 > 使用 Set-Clipboard 在 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

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

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

或者请建议将多个文件路径复制到剪贴板的替代方法。谢谢

标签: powershellcopyclipboard

解决方案


$paths = '"' + $a + '"' + ', ' + '"' + $b + '"'构造单个 string,而不是array,后者是Set-Clipboard参数-Path[ 1]所期望的。

改用$paths = $a, $bvia数组构造函数operator ,

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


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


推荐阅读