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
-
Bir metin düzenleyici (Notepad gibi) açın.
-
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
-
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!