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

时间:2011-06-16 20:47:44

标签: vbscript copy filenames paste filepath

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

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

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

我发现了一些将复制文件的VBS代码,以及一些允许我右键单击文件以获取显示位置的VBS代码。但我不知道如何将它们结合起来。关于如何做到这一点的任何想法?

复制代码:

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "\\file to be copied path", "\\destination directory"

获取路径代码(需要在上下文菜单中显示注册表编辑):

set oFso = createObject("scripting.filesystemobject")

if wscript.arguments.count >= 1 then

    strPath = wscript.arguments(0)


    strDriveName = ofso.GetDriveName(strPath)

    set oDrive = ofso.GetDrive(strDriveName)



    Select Case oDrive.DriveType
            Case 0: t = "Unknown"
        Case 1: t = "Removable"
        Case 2: t = "Fixed"
        Case 3: t = "Network"
        Case 4: t = "CD-ROM"
        Case 5: t = "RAM Disk"
    End Select

    strFileName = ofso.GetFileName(strPath)

    test = inputbox("The path is...","Path", strPath)

else

    msgbox "no args"

end if

1 个答案:

答案 0 :(得分:2)

此代码将采用一个参数(文件名)并将其移动到代码顶部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以打开“发送到”文件夹并放入这里是脚本的快捷方式。如果您执行后者,那么您应该能够右键单击文件并从“发送到”菜单中选择脚本。