在文件夹E:\file中有两个文件,我希望将其复制并粘贴到D:\Dest中:
E:\档案\
使用键盘,我只需选择两个文件,推送ctrl+c,并在目标文件夹D:\Dest\ i然后推送ctrl+v。
现在,我想使用Powershell来实现这一点。因此,我将文件复制到剪贴板中:
Set-Clipboard -Path E:\Files\*
但是现在如何将这些文件粘贴到目标文件夹中呢?显然,我需要Get-Clipboard
。但我不太清楚如何使用它来粘贴文件。
我知道我可以复制这两个文件的内容,然后使用Set-Content
自己创建D:\Dest\中的文件并将内容复制到它们中。但是有直接的方法吗?因为对于Set-Clipboard
,这些文件已经在剪贴板上了。他们只是需要粘贴。我可以使用ctrl+v,它可以工作。但我想把它们粘贴到Powershell中。有什么想法吗?
发布于 2021-12-16 23:08:10
下面是粘贴文件/目录的脚本:
$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
}
}
发布于 2022-03-25 12:17:10
您可以使用.NET Clipboard
类:
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配置文件中。
https://stackoverflow.com/questions/65383032
复制相似问题