2

Я ищу способ получить правильный файл:/ URI из Windows Explorer. В основном я хотел бы иметь пункт контекстного меню, который говорит "скопировать URI файла в буфер обмена". Существует ли что-то подобное?

Это не дубликат "Копировать имя файла в буфер обмена", так как я хочу URI файла, а не имя пути.

Чтобы уточнить: я ищу получить «file:///c:/Temp/foo%20bar.txt» и ни «C:\Temp\foo bar.txt», ни «foo bar.txt», ни «C:\» Temp».

1 ответ1

2

Просто придумал этот VBS.

If WScript.arguments.count > 0 Then
    Dim WshShell: Set WshShell = WScript.CreateObject("Wscript.Shell")
    strPath = "file:///" & Wscript.Arguments(0)
    strPath = Replace(strPath,"\","/")
    strPath = Replace(strPath," ","%20")
    sCmd = "%comspec% /c<nul (set/p anyvariable=" & Chr(34) & strPath & Chr(34) & ")|clip.exe"
    WshShell.Run sCmd,0,0
    Set WshShell = Nothing
End If

Сохранить как.VBS файл Перетащите файл в VBScript, и он скопирует URI файла в буфер обмена. Вы можете реализовать его в контекстном меню, если это необходимо.

Он копирует имя файла в память, восстанавливает косую черту, заменяет пробелы на «% 20» и добавляет «file:///» в начале. Это базовый скрипт, который поддерживает только одно имя файла / аргумент. Вы можете изменить его по мере необходимости.

Добавьте скрипт в папку «Отправить»

Вы можете поместить ярлык сценария в папку «Отправить». Нажмите WinKey + R, введите shell:sendto и нажмите ENTER. Создайте ярлык для скрипта в папке «Отправить» и назовите его соответствующим образом. (например. Copy File URI)

Теперь щелкните правой кнопкой мыши файл, нажмите «Отправить» и выберите « Copy File URI . Путь к файлу будет скопирован в буфер обмена в формате URI, как показано ниже.

file:///C:/Users/jack/desktop/list-of-items.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .