6

Есть ли способ сделать проводник Windows (предпочтительно 10) для открытия URI протокола smb? Например, smb://1.2.3.4/file.txt

Я нахожусь в разнообразной среде операционных систем (в основном windows, mac и linux), а также веб-сервисов, которые мы используем (slack, youtrack), но все наши файлы находятся на сервере с общим ресурсом samba, и трудно получить кликабельные ссылки что все могут получить доступ.

У нас есть два варианта объединения:

  1. Путь Windows - file://X:/
  2. Способ Unix? - smb://1.2.3.4/

Я обнаружил, что проще использовать ссылки smb с веб-инструментами, slack распознает их, mac и linux открывают их нормально, просто окна отказываются распознавать протокол, хотя сам адрес работает.

3 ответа3

6

Спасибо DavidPostill за указание мне в правильном направлении. Вот что я сделал:

Файл реестра (smb.reg):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\smb]
"URL Protocol"=""
@="URL:SMB Protocol"

[HKEY_CLASSES_ROOT\smb\DefaultIcon]
@="explorer.exe,1"

[HKEY_CLASSES_ROOT\smb\shell]
[HKEY_CLASSES_ROOT\smb\shell\open]
[HKEY_CLASSES_ROOT\smb\shell\open\command]
@="\"C:\\OpenLink\\openLink.bat\" \"%1\""

Пакетный файл (openLink.bat):

@echo off
set str=%1
set str=%str:smb:=%
set str=%str:/=\%
explorer.exe %str%

И это прекрасно работает. :)

2

Если ваши ссылки SMB содержат пробелы, вы можете использовать следующий улучшенный пакетный скрипт в ответе Eskel:

@echo off

set str=%1
set str=%str:smb:=%
set str=%str:/=\%

setlocal EnableDelayedExpansion
set str=!str:%%20= !

rem echo %str% & pause

explorer.exe %str%
0

По какой-то причине в Windows 10 запуск explorer.exe как подробно описано в других ответах, здесь не работал; это всегда будет просто открыть местоположение документов пользователя. Вместо этого я обнаружил, что start "" %str% сработал.

Итак, для полноты, это файл openLink.bat который я получил, основываясь на улучшении oberlies исходного ответа Эскеля:

@echo off

set str=%1
set str=%str:smb:=%
set str=%str:/=\%

setlocal EnableDelayedExpansion
set str=!str:%%20= !

rem echo %str% & pause
start "" %str%

И затем это файл .reg, который я использовал:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\smb]
"URL Protocol"=""
@="URL:SMB Protocol"

[HKEY_CLASSES_ROOT\smb\DefaultIcon]
@="explorer.exe,1"

[HKEY_CLASSES_ROOT\smb\shell]
[HKEY_CLASSES_ROOT\smb\shell\open]
[HKEY_CLASSES_ROOT\smb\shell\open\command]
@="\"C:\\Windows\\openLink.bat\" \"%1\""

(Это то же самое, что и оригинал Эскеля, за исключением того, что я не хотел создавать другую папку, которая бы складывала списки на диске C:, поэтому я просто бросил пакетный файл в папку Windows. В качестве бонуса, это помещает его в Windows $ PATH или% PATH%, я полагаю.)

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