powershell - 使用 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
就我而言,有很多文件要从不同的位置复制。所以,我必须生成一个路径用逗号分隔的字符串。
有人能指出我正确的方向吗?
或者请建议将多个文件路径复制到剪贴板的替代方法。谢谢
解决方案
$paths = '"' + $a + '"' + ', ' + '"' + $b + '"'
构造单个 string,而不是array,后者是Set-Clipboard
参数-Path
[ 1]所期望的。
改用$paths = $a, $b
via数组构造函数operator ,
。
在 PowerShell 中,存储在变量中的值从不需要显式双引号,即使对于包含空格的值也是如此。
[1] 注意跨平台PowerShell(Core)v6+版本不再支持该参数;它只支持复制文本(字符串),大概是因为只在所有平台上提供最小公分母功能。有关讨论,请参阅GitHub 问题 #14758。