Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15159
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2509 kez
Teşekkür edildi: 5311 kez

Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Mesaj gönderen TRWE_2012 »

KOD İÇERİĞİ : (create_symlink v1.vbs)

Kod: Tümünü seç

Option Explicit

Dim objShell, objFSO
Dim sourcePath, targetFolder, linkName, linkPath
Dim isFolder, cmd, wshExec, exitCode

Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")

' Kaynak dosya veya klasör yolunu al
sourcePath = InputBox("Sembolik bağlantısı oluşturulacak DOSYA veya KLASÖR tam yolunu girin:", "Kaynak yol")

If sourcePath = "" Then
    WScript.Echo "Kaynak yolu girilmedi. Çıkılıyor."
    WScript.Quit
End If

If Not objFSO.FileExists(sourcePath) And Not objFSO.FolderExists(sourcePath) Then
    WScript.Echo "Kaynak yolu bulunamadı: " & sourcePath
    WScript.Quit
End If

' Hedef klasör (linkin oluşturulacağı yer)
targetFolder = InputBox("Sembolik bağlantının oluşturulacağı KLASÖR yolunu girin:", "Hedef klasör")

If targetFolder = "" Then
    WScript.Echo "Hedef klasör girilmedi. Çıkılıyor."
    WScript.Quit
End If

If Not objFSO.FolderExists(targetFolder) Then
    WScript.Echo "Hedef klasör bulunamadı: " & targetFolder
    WScript.Quit
End If

' Sembolik bağlantı ismini sor (varsayılan: kaynak adı + " - Symlink")
linkName = InputBox("Oluşturulacak sembolik bağlantının adını girin:", "Bağlantı adı", objFSO.GetFileName(sourcePath) & " - Symlink")

If linkName = "" Then
    WScript.Echo "Bağlantı adı girilmedi. Çıkılıyor."
    WScript.Quit
End If

' Bağlantı tam yolu
linkPath = objFSO.BuildPath(targetFolder, linkName)

' Kaynak dosya mı klasör mü kontrolü
If objFSO.FolderExists(sourcePath) Then
    isFolder = True
Else
    isFolder = False
End If

' mklink komutunu hazırla
If isFolder Then
    cmd = "cmd /c mklink /D """ & linkPath & """ """ & sourcePath & """"
Else
    cmd = "cmd /c mklink """ & linkPath & """ """ & sourcePath & """"
End If

' Komutu çalıştır ve sonucu al
Set wshExec = objShell.Exec(cmd)

' Komut tamamlanana kadar bekle
Do While wshExec.Status = 0
    WScript.Sleep 100
Loop

exitCode = wshExec.ExitCode

If exitCode = 0 Then
    WScript.Echo "Sembolik bağlantı başarıyla oluşturuldu:" & vbCrLf & linkPath
Else
    WScript.Echo "Sembolik bağlantı oluşturulamadı. Yönetici olarak çalıştırmayı deneyin." & vbCrLf & _
                 "Çalıştırılan komut:" & vbCrLf & cmd
End If
KOD AÇIKLAMASI :

Bu kod, Windows işletim sisteminde sembolik bağlantılar (symlink) oluşturmak için kullanılan bir Visual Basic Script (VBS) dosyasıdır. Sembolik bağlantılar, bir dosya veya klasörün başka bir konumda gösterilmesini sağlayan özel dosyalardır.

Nesne Oluşturma: WScript.Shell ve Scripting.FileSystemObject nesneleri oluşturulur.
Kullanıcı Girdisi: Kullanıcıdan sembolik bağlantı oluşturulacak dosya veya klasörün yolu, hedef klasör ve bağlantı adı istenir.
Geçerlilik Kontrolleri: Girilen yolların geçerli olup olmadığı kontrol edilir. Eğer geçerli değilse, hata mesajı gösterilir ve script sonlandırılır.
Bağlantı Yolu Oluşturma: Hedef klasör ve bağlantı adı birleştirilerek bağlantının tam yolu oluşturulur.
mklink Komutunu Hazırlama: Kaynağın dosya mı yoksa klasör mü olduğuna göre uygun mklink komutu hazırlanır.
Komutu Çalıştırma: Hazırlanan komut çalıştırılır ve sonuç beklenir.
Sonuç Bildirimi: Bağlantı başarıyla oluşturulursa, kullanıcıya bilgi verilir; aksi takdirde hata mesajı gösterilir.

Bu script, kullanıcıdan alınan bilgilerle sembolik bağlantılar oluşturmak için otomatikleştirilmiş bir yöntem sunar.

Windows'taki kısayol (shortcut) ile sembolik bağlantı (symlink) arasında bazı önemli farklar ve benzerlikler bulunmaktadır:

Benzerlikler:​

Amaç: Her ikisi de kullanıcıların dosya veya klasörlere daha kolay erişim sağlamasını amaçlar.
Kullanım Kolaylığı: Hem kısayollar hem de sembolik bağlantılar, kullanıcıların dosya sisteminde daha az yer kaplayarak daha düzenli bir yapı oluşturmalarına yardımcı olur.

Farklar:​

Yapı:
Kısayol: Bir dosya veya klasörün bir kopyası değildir; sadece hedefin bir referansını tutar. Kısayollar, genellikle .lnk uzantısına sahiptir.
Sembolik Bağlantı: Gerçek dosya veya klasörün bir referansını tutar ve dosya sistemi düzeyinde bir bağlantı oluşturur. Kısayol gibi bir dosya değil, doğrudan hedefe işaret eden bir nesnedir.

Kullanım Alanı:
Kısayol: Genellikle masaüstü veya başlangıç menüsü gibi kullanıcı arayüzlerinde kullanılır.
Sembolik Bağlantı: Daha çok geliştiriciler ve sistem yöneticileri tarafından kullanılır; komut satırı ve scriptlerde yaygın olarak tercih edilir.

Taşınabilirlik:
Kısayol: Kısayol dosyası taşındığında, hedef dosya veya klasörün konumu değişirse kısayol çalışmayabilir.
Sembolik Bağlantı: Hedef dosya veya klasör taşındığında, sembolik bağlantı da geçersiz hale gelir, ancak dosya sistemi düzeyinde daha esneklik sağlar.

Yönetim İzinleri:
Kısayol: Kullanıcılar tarafından kolayca oluşturulabilir ve yönetilebilir.
Sembolik Bağlantı: Genellikle yönetici izinleri gerektirir ve mklink komutu ile oluşturulmalıdır.

Bu farklar ve benzerlikler, kısayollar ve sembolik bağlantılar arasındaki temel ayrımları ortaya koyar. Her iki yöntem de dosya erişimini kolaylaştırsa da, kullanım senaryoları ve teknik detayları açısından farklılık gösterir.

EKRAN GÖRÜNTÜLERİ ( SİSTEM : Windows 11 Yapı 22H2 x64 Home TR ) :

Resim
Resim
Resim
Resim
Resim
Resim

Ben sadece dizin olarak gösterdim, aynısı dosyalar içinde geçerlidir. (dosya'dan kast ettiğim : .dll, ve .exe'lerdir.)

Güle güle kullanın....
En son TRWE_2012 tarafından 27 May 2025, 13:43 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15159
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2509 kez
Teşekkür edildi: 5311 kez

Re: Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Mesaj gönderen TRWE_2012 »

www.sordum.net web sayfasında böyle bir makale yok...(aha bir tane yakaladım...!!! :) )
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15159
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2509 kez
Teşekkür edildi: 5311 kez

Versiyon 2

Mesaj gönderen TRWE_2012 »

Kod: Tümünü seç

Option Explicit

Dim objShell, objFSO
Dim sourcePath, targetFolder, linkName, linkPath
Dim isFolder, cmd, wshExec, exitCode

' Yönetici haklarıyla çalışmayı kontrol et
If WScript.Arguments.Count = 0 Then
    Set objShell = CreateObject("Shell.Application")
    objShell.ShellExecute "wscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
    WScript.Quit
End If

Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")

' Kaynak dosya veya klasör yolunu al
sourcePath = InputBox("Sembolik bağlantısı oluşturulacak DOSYA veya KLASÖR tam yolunu girin:", "Kaynak yol")

If sourcePath = "" Then
    WScript.Echo "Kaynak yolu girilmedi. Çıkılıyor."
    WScript.Quit
End If

If Not objFSO.FileExists(sourcePath) And Not objFSO.FolderExists(sourcePath) Then
    WScript.Echo "Kaynak yolu bulunamadı: " & sourcePath
    WScript.Quit
End If

' Hedef klasör (linkin oluşturulacağı yer)
targetFolder = InputBox("Sembolik bağlantının oluşturulacağı KLASÖR yolunu girin:", "Hedef klasör")

If targetFolder = "" Then
    WScript.Echo "Hedef klasör girilmedi. Çıkılıyor."
    WScript.Quit
End If

If Not objFSO.FolderExists(targetFolder) Then
    WScript.Echo "Hedef klasör bulunamadı: " & targetFolder
    WScript.Quit
End If

' Sembolik bağlantı ismini sor (varsayılan: kaynak adı + " - Symlink")
linkName = InputBox("Oluşturulacak sembolik bağlantının adını girin:", "Bağlantı adı", objFSO.GetFileName(sourcePath) & " - Symlink")

If linkName = "" Then
    WScript.Echo "Bağlantı adı girilmedi. Çıkılıyor."
    WScript.Quit
End If

' Bağlantı tam yolu
linkPath = objFSO.BuildPath(targetFolder, linkName)

' Kaynak dosya mı klasör mü kontrolü
If objFSO.FolderExists(sourcePath) Then
    isFolder = True
Else
    isFolder = False
End If

' mklink komutunu hazırla
If isFolder Then
    cmd = "cmd /c mklink /D """ & linkPath & """ """ & sourcePath & """"
Else
    cmd = "cmd /c mklink """ & linkPath & """ """ & sourcePath & """"
End If

' Komutu çalıştır ve sonucu al
Set wshExec = objShell.Exec(cmd)

' Komut tamamlanana kadar bekle
Do While wshExec.Status = 0
    WScript.Sleep 100
Loop

exitCode = wshExec.ExitCode

If exitCode = 0 Then
    WScript.Echo "Sembolik bağlantı başarıyla oluşturuldu:" & vbCrLf & linkPath
Else
    WScript.Echo "Sembolik bağlantı oluşturulamadı. Yönetici olarak çalıştırmayı deneyin." & vbCrLf & _
                 "Çalıştırılan komut:" & vbCrLf & cmd
End If
Versiyon 2 'de Ne Geldi.?

Direkt "Yönetici Haklarıyla Çalıştırma İçin" ;

Kod: Tümünü seç

Set UAC = CreateObject("Shell.Application")
If WScript.Arguments.length = 0 Then
  UAC.ShellExecute "wscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
  WScript.Quit
End If

' Buraya yönetici haklarıyla yapılacak işlem gelir
MsgBox "Yönetici olarak çalıştı!"
' Örneğin: sembolik bağ oluşturma komutu buraya gelir
Kod bloğu eklendi....
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15159
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2509 kez
Teşekkür edildi: 5311 kez

Masaüstü Sağ Menü'ye Ekleme

Mesaj gönderen TRWE_2012 »

Resim
Şimdi sıra geldi bu .vbs dosyasını direkt .bat dosyası içinden yönetici olarak çalıştırmaya .(birçok yöntem denedim ama bende MS-DOS ---->>"run as" komutu işe yaradı.

symlink_launcher.bat betiğin içerik kodları :

Kod: Tümünü seç

@echo off
:: VBS yolunu ayarla
set "vbsFile=C:\create_symlink v1.vbs"

:: Yönetici kullanıcı adı (şifre sorar!)
runas /user:Administrator "wscript.exe \"%vbsFile%\""
Yukarıdaki kodlamada tek değiştireceğiniz yer Kullanıcı hesap adı (yani Administrator yerine kendi kullanıcı hesap adını yazın)

Şimdi Context Menu 4.0 açın...

Resim
Resim
Resim

Eğer masaüstü sağ menü'de gerektiğinde görünmesini istiyorsanız aşağıdaki işlemi yapın.Böylece klavye'den Shift + fare sol tuşuna basarsanız menü girdisi görünür olur.
Resim

SONUÇ:

Resim
Resim
not:yukarıdaki ekran görüntüsünde arkaplan resmi : Düzce /Akçakoca Liman'ından bir görüntü.(kasım 2014 yılınına ait)

Bu kadar...!!!
Kullanıcı avatarı
velociraptor
Yottabyte4
Yottabyte4
Mesajlar: 53916
Kayıt: 14 Mar 2006, 02:33
cinsiyet: Erkek
Teşekkür etti: 19729 kez
Teşekkür edildi: 11967 kez

Re: Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Mesaj gönderen velociraptor »

Son aşama tam güzel olmuş hem sağ tuşta da kalabalıklık etmez. :arrow:
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15159
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2509 kez
Teşekkür edildi: 5311 kez

Re: Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Mesaj gönderen TRWE_2012 »

velociraptor yazdı: 27 May 2025, 16:24 Son aşama tam güzel olmuş hem sağ tuşta da kalabalıklık etmez. :arrow:
Teşekkürler (bu mesajını beğenme olarak algılıyorum...) :-)
Kullanıcı avatarı
velociraptor
Yottabyte4
Yottabyte4
Mesajlar: 53916
Kayıt: 14 Mar 2006, 02:33
cinsiyet: Erkek
Teşekkür etti: 19729 kez
Teşekkür edildi: 11967 kez

Re: Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Mesaj gönderen velociraptor »

Aynen :kafasalla:
Kullanıcı avatarı
Kayserilifatih
Petabyte4
Petabyte4
Mesajlar: 9466
Kayıt: 30 Ağu 2024, 20:48
cinsiyet: Erkek
Teşekkür etti: 930 kez
Teşekkür edildi: 7010 kez

Re: Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Mesaj gönderen Kayserilifatih »

Windows context menager programı da güzele benziyor bir ara deneyeceğim
Kullanıcı avatarı
burak35
Zettabyte3
Zettabyte3
Mesajlar: 17561
Kayıt: 07 Eki 2016, 13:06
cinsiyet: Erkek
Teşekkür etti: 10123 kez
Teşekkür edildi: 11784 kez

Re: Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Mesaj gönderen burak35 »

Şu Windows context menager freeware mi acaba ? yoksa ilaçlı mı ?
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15159
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2509 kez
Teşekkür edildi: 5311 kez

Re: Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Mesaj gönderen TRWE_2012 »

burak35 yazdı: 28 May 2025, 00:17 Şu Windows context menager freeware mi acaba ? yoksa ilaçlı mı ?
Resim
Yukarıdaki ekran görüntüsünde Hakkında Bölümünde ;

Kullanıcı adı:
Lisans Bilgisi :

görüyor musun?

Görmüyorsun değil mi? o zaman bu portable yazılım freeware yani kullanımı sınırsız.... demektir.
Kullanıcı avatarı
burak35
Zettabyte3
Zettabyte3
Mesajlar: 17561
Kayıt: 07 Eki 2016, 13:06
cinsiyet: Erkek
Teşekkür etti: 10123 kez
Teşekkür edildi: 11784 kez

Re: Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Mesaj gönderen burak35 »

Free ve portable olması güzel. Yükle kaldır derdide yok.
Kullanıcı avatarı
Kayserilifatih
Petabyte4
Petabyte4
Mesajlar: 9466
Kayıt: 30 Ağu 2024, 20:48
cinsiyet: Erkek
Teşekkür etti: 930 kez
Teşekkür edildi: 7010 kez

Re: Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Mesaj gönderen Kayserilifatih »

Programların dörtte üçünü ben portable olarak kullanıyorum kafam rahat oluyor
Kullanıcı avatarı
burak35
Zettabyte3
Zettabyte3
Mesajlar: 17561
Kayıt: 07 Eki 2016, 13:06
cinsiyet: Erkek
Teşekkür etti: 10123 kez
Teşekkür edildi: 11784 kez

Re: Windows İşletim Sisteminde "Sembolik Bağlantı" Oluşturma .VBS'si

Mesaj gönderen burak35 »

Portable daha iyi bence. En az 10 senedir falan portable kullanıyorum.
Cevapla

“Programlama ve Script dilleri” sayfasına dön