Vbscript VBS脚本复制文件,然后将文件路径和文件名复制到剪贴板

Vbscript VBS脚本复制文件,然后将文件路径和文件名复制到剪贴板,vbscript,copy,filenames,paste,filepath,Vbscript,Copy,Filenames,Paste,Filepath,我试图找到一个脚本,让我右键单击XP(或7)中的文件,然后选择和选项(如“复制到MyServer”) 这会将文件复制到设置的位置,然后它会将文件路径和文件名复制到剪贴板,以便我可以将该位置粘贴到其他位置。(我想将其粘贴到只接受图片URL的帮助台票证中。) 因此,基本上,这可以让我将计算机上的图片复制到特定的服务器上,然后将位置粘贴到表单中。有道理吗 我找到了一些可以复制文件的VBS代码,以及一些可以让我右键单击文件以显示位置的VBS代码。但我不知道如何将它们结合起来。有什么办法吗 复制代码: D

我试图找到一个脚本,让我右键单击XP(或7)中的文件,然后选择和选项(如“复制到MyServer”)

这会将文件复制到设置的位置,然后它会将文件路径和文件名复制到剪贴板,以便我可以将该位置粘贴到其他位置。(我想将其粘贴到只接受图片URL的帮助台票证中。)

因此,基本上,这可以让我将计算机上的图片复制到特定的服务器上,然后将位置粘贴到表单中。有道理吗

我找到了一些可以复制文件的VBS代码,以及一些可以让我右键单击文件以显示位置的VBS代码。但我不知道如何将它们结合起来。有什么办法吗

复制代码:

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "\\file to be copied path", "\\destination directory"
获取路径代码(需要注册表编辑才能显示在关联菜单中):


此代码将获取一个参数(文件名),并将其移动到代码顶部的
sLocation
中定义的位置。完成后,它将显示一条确认信息,并将文件路径(位于新位置)放在剪贴板中进行粘贴

据我所知,VBScript无法直接操作剪贴板,因此我们将其交给MSDOS
clip
命令来执行此操作

Option Explicit
' Change sLocation in the line below to the folder you want to move files to.
Dim sLocation : sLocation = "C:\Temp"
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim wsh : Set wsh = WScript.CreateObject("WScript.Shell")
If WScript.Arguments.Count = 0 Then
    MsgBox "Missing a filename!"
    WScript.Quit
End If
If fso.FileExists(WScript.Arguments(0)) = False Then
    MsgBox "File '" & WScript.Arguments(0) & "' doesn't exist!"
    WScript.Quit
End If
Dim oFile : Set oFile = fso.GetFile(WScript.Arguments(0))
fso.CopyFile oFile.Path, sLocation
Dim sNewLocation : sNewLocation = sLocation & "\" & oFile.Name
wsh.Run "cmd.exe /c echo " & sNewLocation & "| clip", 0, True
Msgbox "File moved to " & sNewLocation & VbCrLf & "and new path copied to clipboard."
Set fso = Nothing
Set wsh = Nothing
Set oFile = Nothing

要安装,您需要添加一个注册表项,以便在右键单击某个项目时调用此脚本,或者运行以下命令
shell:sendto
,以打开“发送到”文件夹并在此处放置脚本的快捷方式。如果您选择后者,那么您应该能够右键单击文件并从“发送到”菜单中选择脚本。

喜欢这个剪辑解决方案!大多数其他解决方案依赖于Internet Explorer,它现在会提示用户访问剪贴板。如果不显示IE,则脚本会无声地失败。此剪辑解决方案非常有效。:-)
Option Explicit
' Change sLocation in the line below to the folder you want to move files to.
Dim sLocation : sLocation = "C:\Temp"
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim wsh : Set wsh = WScript.CreateObject("WScript.Shell")
If WScript.Arguments.Count = 0 Then
    MsgBox "Missing a filename!"
    WScript.Quit
End If
If fso.FileExists(WScript.Arguments(0)) = False Then
    MsgBox "File '" & WScript.Arguments(0) & "' doesn't exist!"
    WScript.Quit
End If
Dim oFile : Set oFile = fso.GetFile(WScript.Arguments(0))
fso.CopyFile oFile.Path, sLocation
Dim sNewLocation : sNewLocation = sLocation & "\" & oFile.Name
wsh.Run "cmd.exe /c echo " & sNewLocation & "| clip", 0, True
Msgbox "File moved to " & sNewLocation & VbCrLf & "and new path copied to clipboard."
Set fso = Nothing
Set wsh = Nothing
Set oFile = Nothing