Membuka seseorang: // tautan di windows

6

Apakah ada cara untuk membuat Windows (10 lebih disukai) explorer untuk membuka protokol seseorang URI? Seperti smb://1.2.3.4/file.txt

Saya berada dalam lingkungan sistem operasi yang beragam (kebanyakan windows, mac dan linux) dan juga layanan web yang kami gunakan (slack, youtrack) tetapi semua file kami ada di server dengan samba share dan sulit untuk memiliki tautan yang dapat diklik bahwa semua dapat mengakses.

Kami memiliki dua opsi untuk penyatuan:

  1. Cara Windows - file://X:/
  2. Cara Unix? - smb://1.2.3.4/

Saya menemukan lebih mudah menggunakan tautan seseorang dengan alat web, kendur mengenali mereka, mac dan linux membukanya dengan baik, hanya saja windows menolak untuk mengenali protokol, meskipun alamat itu sendiri berfungsi.

Eskel
sumber
Stack Overflow dupe: bagaimana cara membuat protokol URL saya sendiri? (mis. jadi: // ...)
DavidPostill
1
Catatan: Cara Windows mengasumsikan 1.2.3.4 dipasang sebagai X :. Cara yang lebih dapat diandalkan untuk melakukannya adalah \\ 1.2.3.4 \.
Duncan X Simpson

Jawaban:

6

Terima kasih DavidPostill karena mengarahkan saya ke arah yang benar. Inilah yang saya lakukan:

File registri (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\""

File kumpulan (openLink.bat):

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

Dan itu bekerja dengan baik. :)

Eskel
sumber
saya menyimpan kode registri Anda sebagai file .reg tetapi tidak dapat diinstal, dapatkah Anda membantu saya menginstalnya? maaf untuk permintaan bodoh, saya tidak terbiasa dengan hal-hal semacam ini.
Luke
1
@ LongTTH saya tahu itu terlambat tapi header reg tergantung pada os Anda. Jadi, Anda mungkin harus memeriksa baris pertama yang cocok untuk os Anda.
Dwza
2

Jika tautan SMB Anda mengandung spasi, Anda dapat menggunakan skrip batch yang ditingkatkan berikut ini dalam jawaban 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%
oberlies
sumber
0

Untuk alasan apa pun, di Windows 10, aktifkan explorer.exe sebagaimana dirinci dalam jawaban lain di sini tidak bekerja; itu akan selalu hanya membuka lokasi Dokumen pengguna. Sebaliknya, saya menemukan itu start "" %str% bekerja.

Untuk kelengkapan, ini adalah openLink.bat file saya mulai bekerja, berdasarkan perbaikan oberlies di Jawaban asli Eskel :

@echo off

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

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

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

Dan kemudian ini adalah file .reg yang saya gunakan:

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\""

(Yang sama dengan Eskel asli kecuali bahwa saya tidak ingin membuat folder lain membuang daftar di drive C: jadi saya hanya melemparkan file batch ke folder Windows. Sebagai bonus, ini menempatkannya di Windows $ PATH, atau% PATH%, saya kira.)

keithzg
sumber