Windows Batch Dosyalarında Bir Sürücüyü Etiketi ile Referans Gösterme

Dinamik bir bilgisayar ortamında, sürücü harfleri, cihaz bağlantıları ve sistem yapılandırmaları gibi çeşitli faktörlere bağlı olarak değişebilir. Bu değişkenlik, belirli sürücülere bağlı olan betikler oluştururken komplikasyonlara neden olabilir. Hiç sürücü harfi değişebilecek bir sürücüye atıfta bulunmanız gereken bir durumda bulundunuz mu? Örneğin, “MyLabel” gibi bir etiketle bir sürücüye yedekleme veya depolama amacıyla erişmeye çalışıyor olabilirsiniz. Eğer bu durum başınıza geldiyse, bunu başarmanıza olanak tanıyan basit bir çözümü keşfetmek için okumaya devam edin.

Sürücü Harfleri ile İlgili Problem

Windows’ta batch dosyaları veya betikler yazarken, birçok geliştirici işlemler gerçekleştirmek için sürücü harfini kullanır. Ancak bu yaklaşımın birkaç dezavantajı vardır:

  • Tutarsızlık: Sürücü harfi, bağlı cihazların sırasına bağlı olarak kolayca değişebilir.
  • Hatalar: Betikler, harf değişiklikleri nedeniyle aradıkları sürücüyü bulamadıklarında başarısız olabilir.

Betikleri daha sağlam hale getirmek için, genellikle bir sürücüye etiketine göre atıfta bulunmak daha iyidir. Bu, sürücü harfi değişse bile etiketin sabit kalmasını sağlar.

Çözüm: VBScript Kullanmak

Belirli bir etiket temelinde sürücü harfini almak için bir VBScript oluşturabilirsiniz. Bu çözümü uygulamak için aşağıdaki adımları izleyin.

Adım 1: VBScript Oluşturun

  1. Bir metin düzenleyici (Notepad gibi) açın.

  2. Aşağıdaki kodu kopyalayıp yapıştırın:

    Option Explicit
    Dim num, args, objWMIService, objItem, colItems
    
    set args = WScript.Arguments
    num = args.Count
    
    if num <> 1 then
       WScript.Echo "Kullanım: CScript DriveFromLabel.vbs <etiket>"
       WScript.Quit 1
    end if
    
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk")
    
    For Each objItem in colItems
       If strcomp(objItem.VolumeName, args.Item(0), 1) = 0 Then
          Wscript.Echo objItem.Name
       End If
    Next
    
    WScript.Quit 0
    
  3. Dosyayı DriveFromLabel.vbs olarak kaydedin.

Adım 2: Scripti Çalıştırma

Artık scriptinizi oluşturduğunuza göre, aşağıdaki komutu kullanarak çalıştırmak isteyeceksiniz:

cscript /nologo DriveFromLabel.vbs <etiket>
  • <etiket> kısmını atıfta bulunmak istediğiniz sürücünün gerçek etiketiyle değiştirin. Örneğin, sürücünüzün etiketi “MyLabel” ise, şu komutu çalıştırırsınız:
cscript /nologo DriveFromLabel.vbs MyLabel

Scriptin Anlaşılması

İşte scriptin ana bileşenlerinin basit bir incelemesi:

  • WMI Servisi: Sürücüler hakkında bilgi almak için Windows Yönetim Araçları (WMI) servisi kullanılır.
  • Argüman İşleme: Kullanıcının bir argüman (sürücü etiketi) sağlamış olup olmadığını kontrol eder ve sağlamadıysa uyarır.
  • Sürücü Sayımı: Script, mevcut tüm sürücüleri dolaşır ve hacim etiketinin girişle eşleşip eşleşmediğini kontrol eder.
  • Çıktı: Bir eşleşme bulunursa, karşılık gelen sürücü harfini çıktılar.

Sonuç

Batch dosyalarında sürücüleri sürücü harfleri yerine etiketleri ile referans göstermek, betiklerinizin güvenilirliğini önemli ölçüde artırabilir. Yukarıda belirtilen adımları izleyerek, sürücü harflerindeki değişikliklerden bağımsız olarak hangi sürücü ile çalıştığınızı her zaman bilmenizi sağlayan basit bir geçici çözümü hızlı bir şekilde kurabilirsiniz. Bu çözüm, iş yükünüzü hem kolaylaştırır hem de dosya işlemlerinizdeki hata riskini azaltır.

Bir sonraki sürücü harflerinde kayma problemi ile karşılaştığınızda, bu kullanışlı VBScript çözümünü unutmayın!