首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过Powershell中的剪贴板复制和粘贴文件

通过Powershell中的剪贴板复制和粘贴文件
EN

Stack Overflow用户
提问于 2020-12-20 17:59:07
回答 2查看 2.6K关注 0票数 5

在文件夹E:\file中有两个文件,我希望将其复制并粘贴到D:\Dest中:

E:\档案\

  • File1.txt
  • File2.txt

使用键盘,我只需选择两个文件,推送ctrl+c,并在目标文件夹D:\Dest\ i然后推送ctrl+v。

现在,我想使用Powershell来实现这一点。因此,我将文件复制到剪贴板中:

代码语言:javascript
运行
复制
Set-Clipboard -Path E:\Files\*

但是现在如何将这些文件粘贴到目标文件夹中呢?显然,我需要Get-Clipboard。但我不太清楚如何使用它来粘贴文件。

我知道我可以复制这两个文件的内容,然后使用Set-Content自己创建D:\Dest\中的文件并将内容复制到它们中。但是有直接的方法吗?因为对于Set-Clipboard,这些文件已经在剪贴板上了。他们只是需要粘贴。我可以使用ctrl+v,它可以工作。但我想把它们粘贴到Powershell中。有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2021-12-16 23:08:10

下面是粘贴文件/目录的脚本:

代码语言:javascript
运行
复制
$fileDrop = get-clipboard -Format FileDropList 
if($fileDrop -eq $null)
{
    write-host "No files on the clipboard"
    return
}

foreach($file in $fileDrop)
{
    if($file.Mode.StartsWith("d"))
    {
        $source = join-path $file.Directory $file.Name
        $e = "copy-item -Recurse $source $($file.Name)"
        $e
        Invoke-Expression $e
    }
    else
    {
        $file.Name
        $file | copy-item
    }
}
票数 1
EN

Stack Overflow用户

发布于 2022-03-25 12:17:10

您可以使用.NET Clipboard类:

代码语言:javascript
运行
复制
Add-Type -AssemblyName System.Windows.Forms

$files = [System.Collections.Specialized.StringCollection]::new()
$files.Add('YOUR_FILE_PATH_HERE')

[System.Windows.Forms.Clipboard]::SetFileDropList($files)

这会将YOUR_FILE_PATH_HERE复制到本地剪贴板。

例如,当您在本地终端中需要将文件复制到远程会话而不需要PowerShell远程处理(例如RDP或Citrix)而不打开资源管理器中的目录时,您可以使用它。

它有点笨重,所以如果我经常使用它,我可能会把它放在像Copy-FileToClipboard这样的函数中,并将它添加到我的PowerShell配置文件中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65383032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档