rename ด้วย command prompt

เผยแพร่ครั้งแรก:

|

ปรับปรุงล่าสุด

เก็บที่

rename ด้วย command prompt มีประโยชนมากเวลาต้องทำทีละหลายไฟล์ โดยที่ไม่ต้องใช้ซอฟต์แวร์อื่นช่วย 

command prompt เป็นเรื่องพื้นฐานที่ควรเรียนรู้เอาไว้บ้าง เพราะหลายเรื่องแค่ใช้command prompt ก็ช่วยได้แล้ว เช่นการใช้ Rename ไฟล์หลาย ๆ ไฟล์เป็นต้น

เมื่อวันก่อนได้รับโจทย์มาว่า “เก็บไฟล์ภาพไว้จำนวนหนึ่งในโฟลเดอร์เดียวกัน ต้องการเปลี่ยนชื่อภาพเหล่านั้นพร้อมกันจะทำอย่างไร”

เรื่องนี้ก็ต้องทำความเข้าใจก่อนว่าได้มีการ organized หรือจัดการชื่อไฟล์เป็นระบบหรือเปล่า ถ้าจัดชื่อไฟล์เป็นระบบการแก้ไขด้วยคำสั่ง ren หรือ rename ใน dos นั้นง่ายมาก

รูปแบบคำสั่งของ rename หรือ ren ไม่มีอะไรมาก

RENAME [drive:][path][directoryname1 | filename1] [directoryname2 | filename2]

หรือว่า

REN [drive:][path][directoryname1 | filename1] [directoryname2 | filename2]

โอเค เขียนเป็นรูปแบบไวยากรณ์แบบนี้อาจจะยังไม่เข้าใจ ลองมาดูตัวอย่างกัน สมมติว่าตั้งชื่อไดร์ฟ C ไว้ว่า Aloha แต่อยากจะเปลี่ยนชื่อไดร์ฟ C ให้เป็น BatCave แบบนี้ก็ใช้คำสั่ง dos แบบนี้

rename c:\ Aloha BatCave

คำสั่งนี้จะเปลี่ยนชื่อโฟลเดอร์ Aloha ในไดร์ฟ C ให้เป็นชื่อ BatCave ง่าย ๆ เลยคือ หลังคำสั่ง rename จะเป็นชื่อ(path) เดิมที่มีอยู่แล้ว วรรคหน่อยหนึ่งแล้วตามด้วยชื่อที่จะเปลี่ยน

การเปลี่ยนนี้จะเปลี่ยนในจุดไหนก็ได้ เช่นการเปลี่ยนนามสกุลไฟล์จาก .txt ให้เป็น .bat ก็ทำได้โดยใช้คำสั่ง 

rename *.txt *.bat 

ตัว * จะทำหน้าที่ wildcard หรือตัวที่บอกว่า เอาทั้งหมดนะ ทุกไฟล์ที่อยู่ในนี้ หากมีนามสกุลเป็น .txt ให้เปลี่ยนเป็น .bat ให้หมด ใส่แบบนี้ ตัวที่เป็นนามสกุลอื่น เช่น .tif .docx .xlsx จะไม่ได้รับผลกระทบในการเปลี่ยนชื่อไปด้วย

หรือถ้าเราต้องการเติม Prefix (เรียกซะเท่ คือเติมชื่อใดชื่อหนึ่งเข้าไปข้างหน้าชื่อเดิมนั่นแหละ) เข้าไปในทุกไฟล์ที่อยู่ในโฟลเดอร์นี้ เช่น อยากเปลี่ยนทุกไฟล์ให้ขึ้นต้นด้วย data_ ก็ใช้คำสั่งนี้

rename * data_*

อันนี้จะเปลี่ยนชื่อทุกไฟล์โดยไม่สนใจว่าเป็นไฟล์ประเภทใดทั้งสิ้น

แต่ทีนี้ คำสั่ง rename ใช้ วรรค หรือ space ในการตัดคำสั่งระหว่างชื่อเดิมกับชื่อใหม่ที่ต้องการเปลี่ยน ถ้าเกิดไฟล์นั้นดังตั้งชื่อมีวรรค เช่น Unnamed Data จะเปลี่ยนไปเป็น Leader Dick จะทำอย่างไรล่ะ? เพราะถ้าใช้คำสั่ง rename unnamed data.docx Leader Dick.docx มันจะกลายเป็นว่า จะหาไฟล์ ชื่อ unnamed เพื่อเปลี่ยนชื่อเป็น data.docx ซึ่งมันจะหาไม่เจอเพราะไม่มีไฟล์นี้อยู่

ตรงนี้ต้องใช้เครื่องหมายคำพูด “” เข้ามาใช้ คือแทนที่จะเป็น rename unnamed data.docx Leader Dick.docx ก็จะเป็น rename “unnamed data.docx” “Leader Dick.docx”

rename ด้วย command prompt

สถานการณ์จริงที่ต้องใช้คำสั่งนี้ เช่น เมื่อได้รับคำสั่งให้เปลี่ยนชื่อไฟล์แผนที่ให้ตรงตามรูปแบบ จากเดิมเก็บไว้ในรูปแบบ ระวาง-แผ่น (เช่น 1234-56.tif) จะต้องเปลี่ยนให้อยู่ในรูป รหัสสำนักงานที่ดิน-ระวางภูมิประเทศ-ระวาง-แผ่น-มาตราส่วน (10800-51362-1234-56-1m.tif)

tip: ใช้ควบคู่กับ list filename เพื่อตรวจสอบชื่อไฟล์ที่มีก่อน

วิธีแก้ปัญหาตรงนี้ต้องแยกเป็นสองส่วน

อย่างแรก จัดระเบียบให้แผนที่ซึ่งมี รหัสสำนักงานที่ดิน-ระวางภูมิประเทศ-มาตราส่วน เดียวกัน ไปอยู่ในโฟลเดอร์เดียวกัน เพื่อจะได้เปลี่ยนชื่อทั้งก้อนได้ทีละครั้ง

ขั้นต่อมา เติมชื่อทั้งข้างหน้าและต่อท้ายก่อนนามสกุลไฟล์

เมื่อเปิด dos มา ต้องกำหนด directory (ก็คือโฟลเดอร์นั่นแหละ) ที่เก็บไฟล์ภาพทั้งหมดก่อน ว่าเก็บไว้ที่ไหน โดยการเปลี่ยน directory ใช้คำสั่ง cd/d ตามด้วย path ของโฟลเดอร์ที่เก็บไฟล์

ข้ามมาขั้นที่สองเลย ใช้คำสั่ง ren ง่าย ๆ เหมือนเดิม เพิ่มเติมทริกเล็กน้อย โดยตัดนามสกุลทั้งหลายทิ้งไปก่อน จะได้เติมต่อท้ายได้สะดวก (ถ้าไม่ลบนามสกุลออกก่อนจะกลายเป็น 10800-51362-1234-56.tif-1m 

ren *.tif *.

คำสั่งนี้ให้ค้นหานามสกุล tif แล้วแทนที่โดยไม่ใช่ตัวอะไรเลย (นั่นคือลบทิ้ง) จากนั้นก็สั่งให้เปลี่ยนชื่อให้อยู่ในรูปแบบที่กำหนด

For %a in (*) do ren “%a” “10800-51362-%a-1m.tif”

คำสั่ง For %a in (*) หมายถึงชื่อไฟล์ทุกไฟล์ในโฟลเดอร์นี้

do ren ให้ใช้คำสั่งเปลี่ยนชื่อ

จาก %a (คือชื่อเดิม) เป็น 10800-51362-%a-1m.tif คือเติมชื่อทั้งหน้าและหลังตามรูปแบบตามด้วยใส่นามสกุล tif กลับไปตามเดิม

ง่าย ๆ ไม่ถึงนาที การเปลี่ยนชื่อก็เรียบร้อย

อ้างอิง: เว็บไมโครซอฟต์ คำสั่ง ren