การอ้างอิงไดรฟ์โดยใช้ Label ในไฟล์ Batch ของ Windows
ในสภาพแวดล้อมการคอมพิวเตอร์ที่มีพลศาสตร์ ตัวอักษรของไดรฟ์อาจเปลี่ยนแปลงได้ตามปัจจัยต่าง ๆ เช่น การเชื่อมต่ออุปกรณ์และการตั้งค่าของระบบ ความแปรผันนี้สามารถทำให้เกิดปัญหาโดยเฉพาะเมื่อสร้างสคริปต์ที่ขึ้นอยู่กับไดรฟ์เฉพาะ คุณเคยพบว่าตัวเองอยู่ในสถานการณ์ที่จำเป็นต้องอ้างอิงถึงไดรฟ์ที่ตัวอักษรอาจเปลี่ยนแปลงหรือไม่? ตัวอย่างเช่น คุณอาจกำลังพยายามเข้าถึงไดรฟ์สำหรับการสำรองข้อมูลหรือการจัดเก็บโดยใช้ label เช่น “MyLabel” หากสิ่งนี้เคยเกิดขึ้นกับคุณแล้ว โปรดอ่านต่อเพื่อค้นหาวิธีแก้ง่าย ๆ ที่ช่วยให้คุณทำเช่นนี้ได้
ปัญหาของตัวอักษรไดรฟ์
เมื่อเขียนไฟล์ batch หรือสคริปต์ใน Windows นักพัฒนาหลายคนใช้ตัวอักษรไดรฟ์ในการทำงาน อย่างไรก็ตาม วิธีการนี้มีข้อเสียบางประการ:
- ความไม่สอดคล้อง: ตัวอักษรไดรฟ์สามารถเปลี่ยนได้ง่ายตามลำดับของอุปกรณ์ที่เชื่อมต่อ
- ข้อผิดพลาด: สคริปต์อาจล้มเหลวหากไม่สามารถค้นหาไดรฟ์ที่ต้องการได้เนื่องจากการเปลี่ยนตัวอักษร
เพื่อทำให้สคริปต์มีความแข็งแกร่งมากขึ้น การอ้างอิงไดรฟ์โดยใช้ label จะดีกว่า ซึ่งจะทำให้มั่นใจว่าถึงแม้ตัวอักษรไดรฟ์จะเปลี่ยน label ก็ยังคงคงที่
วิธีแก้ไข: การใช้ VBScript
คุณสามารถสร้าง VBScript ที่ดึงตัวอักษรของไดรฟ์ตาม label ที่ระบุไว้ ดำเนินการตามขั้นตอนด้านล่างเพื่อนำวิธีแก้ไขนี้ไปใช้
ขั้นตอนที่ 1: สร้าง VBScript
-
เปิดโปรแกรมแก้ไขข้อความ (เช่น Notepad)
-
คัดลอกและวางโค้ดต่อไปนี้ลงไป:
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
-
บันทึกไฟล์ในชื่อ
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 นี้!