VBS скрипт для копирования файла, а затем скопировать путь к файлу и имя файла в буфер обмена - PullRequest
0 голосов
/ 17 июня 2011

Я пытаюсь найти скрипт, который позволит мне щелкнуть правой кнопкой мыши файл в XP (или 7), а затем выбрать и вариант (например, «Копировать в MyServer»).

Это скопировало бы файл в заданное место, а затем скопировало бы путь к файлу и имя файла в буфер обмена, чтобы я мог вставить это место в другое место.(Я хочу вставить его в мой тикет службы поддержки, который принимает только URL-адреса для изображений.)

Таким образом, по сути, это позволило бы мне скопировать изображение на моем компьютере на определенный сервер, а затем вставить местоположение в мою форму.Имеет смысл?

Я нашел некоторый код 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 Ответ

2 голосов
/ 07 декабря 2011

Этот код будет принимать один аргумент (имя файла) и перемещать его в местоположение, определенное в 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, чтобы открыть папку «Отправить в» и поставить здесь ярлык.Если вы сделаете последнее, то сможете щелкнуть правой кнопкой мыши файл и выбрать сценарий в меню «Отправить».

...