การประยุกต์ใช้ Windows Command และ Batch File ในการจัดการไฟล์

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

โจทย์ที่ว่าก็คือ ผู้ใช้มีไฟล์รูปภาพจำนวนหนึ่ง ประมาณหลายพันไฟล์

ต้องการแยกเฉพาะรูปที่ต้องการออกมาจำนวนหนึ่ง โดยรูปที่ต้องการมีเป็นรายการการอยู่ในไฟล์ excel

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

ก่อนอื่นเราไปซ้อมมือกันก่อน สมมติว่าไฟล์ต้นฉบับอยู่ใน d:\sources และต้องการย้ายไฟล์ที่ต้องการไปไว้ที่ d:\destinations

ให้เราเปิด cmd ขึ้นมา จากนั้นพิมพ์คำสั่ง

copy d:\sources\wp_ss_20130130_0001.png d:\destinations

คำสั่งนี้จะเป็นการ copy ไฟล์ wp_ss_20130130_0001.png ที่อยู่ใน d:\sources ไปยัง d:\destinations ซึ่งเราสามารถใช้คำสั่งนี้จากที่ไหนของเครื่องก็ได้ แต่ถ้าเราอยู่ในโฟลเดอร์ sources อยู่แล้ว เราสามารถระบุเฉพาะชื่อไฟล์เพียงอย่างเดียวก็ได้ เช่น copy wp_ss_20130130_0001.png d:\destinations

จากความรู้ด้านบนจะเป็นการ copy ไฟล์ทีละไฟล์ ถ้าต้องการ copy หลายๆ ไฟล์ เราจะใช้สิ่งที่เรียกว่า batch file เข้ามาช่วย โดยทำตามขั้นตอนดังต่อไปนี้

1. เปิด notepad ขึ้นมา และพิมพ์คำสั่ง

copy wp_ss_20130130_0001.png d:\destinations
copy wp_ss_20130130_0001.png d:\destinations

จากนั้นเซฟเป็นไฟล์ชื่อ copy.bat ไว้ใน d:\sources นามสกุลไฟล์จะต้องเป็น .bat เท่านั้น ไม่ใช่ .txt

2. กลับไปที่ command และพิมพ์คำสั่ง copy.bat

จะเห็นว่า copy.bat เป็นการทำคำสั่งที่อยู่ภายใน batch file ถึงตรงนี้แล้วท่านผู้อ่านน่าจะพอเห็นแนวทางแล้วว่าเราจะ copy เฉพาะไฟล์ที่อยู่ใน excel ได้อย่างไร นั่นคือเราจะไปสร้างชุดคำสั่งการ copy จากไฟล์ excel นั่นเอง

3. กลับไปที่ไฟล์ excel จะเห็นว่าชื่อไฟล์อยู่ในคอลัมน์ A ไปที่คอลัมน์ B และพิมพ์

="copy " & A1 & " d:\destinations"

4. copy คำสั่งลงมาจนครบทุกไฟล์

5. copy คำสั่งในคอลัมน์ B ทั้งหมดไปวางไว้ในไฟล์ copy.bat และเซฟ

6. ไปที่ command และพิมพ์คำสั่ง copy.bat อีกครั้ง

เป็นอันเสร็จสิ้น หวังว่าบทความประเดิมบล็อกของผู้เขียน น่าจะมีประโยชน์กับผู้อ่านทุกท่านที่หลงเข้ามาไม่มากก็น้อย

จนกว่าจะอยากเขียนเรื่องใหม่

สวัสดีครับ

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.