การอ้างอิงไดรฟ์โดยใช้ Label ในไฟล์ Batch ของ Windows

ในสภาพแวดล้อมการคอมพิวเตอร์ที่มีพลศาสตร์ ตัวอักษรของไดรฟ์อาจเปลี่ยนแปลงได้ตามปัจจัยต่าง ๆ เช่น การเชื่อมต่ออุปกรณ์และการตั้งค่าของระบบ ความแปรผันนี้สามารถทำให้เกิดปัญหาโดยเฉพาะเมื่อสร้างสคริปต์ที่ขึ้นอยู่กับไดรฟ์เฉพาะ คุณเคยพบว่าตัวเองอยู่ในสถานการณ์ที่จำเป็นต้องอ้างอิงถึงไดรฟ์ที่ตัวอักษรอาจเปลี่ยนแปลงหรือไม่? ตัวอย่างเช่น คุณอาจกำลังพยายามเข้าถึงไดรฟ์สำหรับการสำรองข้อมูลหรือการจัดเก็บโดยใช้ label เช่น “MyLabel” หากสิ่งนี้เคยเกิดขึ้นกับคุณแล้ว โปรดอ่านต่อเพื่อค้นหาวิธีแก้ง่าย ๆ ที่ช่วยให้คุณทำเช่นนี้ได้

ปัญหาของตัวอักษรไดรฟ์

เมื่อเขียนไฟล์ batch หรือสคริปต์ใน Windows นักพัฒนาหลายคนใช้ตัวอักษรไดรฟ์ในการทำงาน อย่างไรก็ตาม วิธีการนี้มีข้อเสียบางประการ:

  • ความไม่สอดคล้อง: ตัวอักษรไดรฟ์สามารถเปลี่ยนได้ง่ายตามลำดับของอุปกรณ์ที่เชื่อมต่อ
  • ข้อผิดพลาด: สคริปต์อาจล้มเหลวหากไม่สามารถค้นหาไดรฟ์ที่ต้องการได้เนื่องจากการเปลี่ยนตัวอักษร

เพื่อทำให้สคริปต์มีความแข็งแกร่งมากขึ้น การอ้างอิงไดรฟ์โดยใช้ label จะดีกว่า ซึ่งจะทำให้มั่นใจว่าถึงแม้ตัวอักษรไดรฟ์จะเปลี่ยน label ก็ยังคงคงที่

วิธีแก้ไข: การใช้ VBScript

คุณสามารถสร้าง VBScript ที่ดึงตัวอักษรของไดรฟ์ตาม label ที่ระบุไว้ ดำเนินการตามขั้นตอนด้านล่างเพื่อนำวิธีแก้ไขนี้ไปใช้

ขั้นตอนที่ 1: สร้าง VBScript

  1. เปิดโปรแกรมแก้ไขข้อความ (เช่น Notepad)

  2. คัดลอกและวางโค้ดต่อไปนี้ลงไป:

    Option Explicit
    Dim num, args, objWMIService, objItem, colItems
    
    set args = WScript.Arguments
    num = args.Count
    
    if num <> 1 then
       WScript.Echo "Usage: CScript DriveFromLabel.vbs <label>"
       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. บันทึกไฟล์ในชื่อ DriveFromLabel.vbs

ขั้นตอนที่ 2: การรันสคริปต์

ตอนนี้ที่คุณได้สร้างสคริปต์แล้ว คุณจะต้องรันสคริปต์ด้วยคำสั่งต่อไปนี้:

cscript /nologo DriveFromLabel.vbs <label>
  • แทนที่ <label> ด้วย label ที่แท้จริงของไดรฟ์ที่คุณต้องการอ้างอิง ตัวอย่างเช่น หาก label ของไดรฟ์ของคุณคือ “MyLabel” คุณจะรัน:
cscript /nologo DriveFromLabel.vbs MyLabel

ความเข้าใจในสคริปต์

นี่คือการอธิบายส่วนสำคัญของสคริปต์:

  • บริการ WMI: บริการ Windows Management Instrumentation (WMI) ถูกใช้งานเพื่อรับข้อมูลเกี่ยวกับไดรฟ์
  • การจัดการพารามิเตอร์: จะตรวจสอบว่าผู้ใช้ได้ระบุพารามิเตอร์ (label ของไดรฟ์) หรือไม่ และจะแจ้งเตือนหากไม่ได้ระบุ
  • การระบุดรฟ์: สคริปต์จะเดินผ่านทุกไดรฟ์ที่มีและตรวจสอบว่า volume label ตรงกับข้อมูลนำเข้าหรือไม่
  • ผลลัพธ์: หากมีการจับคู่ จะมีการแสดงตัวอักษรไดรฟ์ที่ตรงกัน

สรุป

การอ้างอิงไดรฟ์โดยใช้ label แทนที่จะใช้ตัวอักษรไดรฟ์ในไฟล์ Batch สามารถปรับปรุงความน่าเชื่อถือของสคริปต์ของคุณได้อย่างมาก โดยการปฏิบัติตามขั้นตอนที่กล่าวถึงข้างต้น คุณสามารถจัดตั้งวิธีแก้ง่าย ๆ เพื่อให้แน่ใจว่าคุณรู้ว่าไดรฟ์ใดที่คุณกำลังจัดการอยู่ ไม่ว่าจะมีการเปลี่ยนแปลงตัวอักษรไดรฟ์หรือไม่ วิธีแก้ปัญหานี้ไม่เพียงแต่ช่วย streamline งานของคุณ แต่ยังช่วยลดความเสี่ยงของข้อผิดพลาดในการดำเนินการไฟล์ของคุณ

ต่อไปเมื่อคุณเผชิญกับปัญหาตัวอักษรไดรฟ์ที่เปลี่ยนแปลง อย่าลืมวิธีแก้ VBScript นี้!