วิธีสร้างโฟลเดอร์จำนวนมากด้วย Command Prompt และ Excel แบบอัตโนมัติ

หัวข้อ:

วิธีสร้างโฟลเดอร์ – folder หรือ ไดเร็กทอรี – directory เป็นเรื่องพื้นฐานมาก ๆ ใคร ๆ ก็ทำได้ แค่คลิกขวาแล้วก็กด New Folder เพียงเท่านี้ไม่เห็นยาก! แต่ถ้าต้องมาสร้างโฟลเดอร์ใหม่สัก 8,000 โฟลเดอร์ เรื่องที่ไม่ยากนี้ก็คงไม่ใช่เรื่องสนุกแน่นอน!

อันนี้จากประสบการณ์ตรงเลย มีอยู่ครั้งหนึ่งต้องสร้างโฟลเดอร์องค์กรปกครองส่วนท้องถิ่นจำนวน 7,850 แห่ง การจะมาทำโฟลเดอร์ทีละอัน ตั้งชื่อไปทีละแห่ง ไม่ใช่เรื่องสนุก อาจจะเกิดการผิดพลาดได้ง่ายอีกด้วยเนื่องจากปริมาณที่มากแบบนี้

วิธีสร้างโฟลเดอร์แบบทั่วไป

ก่อนอื่น เรามาทบทวนก่อนว่า ถ้าเป็นปกติ เราจะสร้างโฟลเดอร์ขึ้นมา 1 โฟลเดอร์ เราทำกันอย่างไร?

วิธีการก็คือ จะเปิด File Explorer ขึ้นมา อ๊ะ…สำหรับมือใหม่จริง ๆ File Explorer ก็คือหน้าต่างที่เราใช้ดูไฟล์ต่าง ๆ นั่นแหละจ้ะ วิธีการเปิดทำได้หลายวิธี อย่างเช่น ที่คีย์บอร์ด กดปุ่ม Windows (ที่เป็นโลโก้วินโดว์) กับ E พร้อมกัน หรือ พิมพ์คำว่า File Explorer ในช่องค้นหา ตรงมุมล่างด้านซ้ายมือของจอคอมพิวเตอร์ก็ได้ 

ตามปกติ เราจะสร้างโฟลเดอร์ใหม่ ด้วยการไปที่หน้าต่างว่าง ๆ ในไดเร็กทอรีหลักที่ต้องการ แล้วคลิกขวา เลือก New > Folder จากนั้นก็ตั้งชื่อ หรือไม่งั้นก็อาจจะใช้วิธีคลิก New Folder จากเมนูด้านบนของ File Explorer ก็ได้เหมือนกัน 

หรือจะใช้คีย์บอร์ดช็อตคัต กด Ctrl+Shift+N ก็ได้เหมือนกัน

นี่คือวิธีที่เราสร้างโฟลเดอร์ตามปกติ แต่มันยังมีวิธีการอื่นอีกเยอะแยะไปหมด ซึ่งครั้งนี้ โจทย์คือการสร้างโฟลเดอร์ทีละมาก ๆ แบบเร็ว ๆ จะต้องทำอย่างไร ตรงนี้ จะใช้ cmd หรือ command line หรือ ที่เราเรียกกันทั่วไปว่า คำสั่ง dos เข้ามาช่วย

วิธีสร้างโฟลเดอร์ด้วย Command Prompt

คำสั่ง ​Command Prompt ที่เราจะใช้สร้างโฟลเดอร์ จะเรียกว่า Make Directory

อย่างที่เคยบอก โฟลเดอร์ – Folder – ไดเร็กทอรี – Directory คืออย่างเดียวกัน อยู่ที่ใครจะเรียกอะไร แต่สำหรับ Dos จะใช้ Directory ซึ่งคำสั่งก็คือ

mkdir

(จำง่าย ๆ make directory – mk เป็นตัวย่อของ Make และ dir คือตัวย่อของdirectory

มาลองทำกัน 

ขั้นแรก เปิด cmd (command prompt)  มีวิธีการเรียกใช้งานได้หลายวิธี เช่น

กดปุ่มสัญลักษณ์วินโดว์ที่คีย์บอร์ด พร้อมตัว x เพื่อเรียกเมนูคำสั่งขึ้นมา แล้วเลือก command prompt

หรือ พิมพ์ cmd ที่ช่องค้นหา ตรงด้านล่างซ้ายมือ 

หรือ ถ้าอยู่ในหน้า File Explorer อยู่แล้ว พิมพ์ cmd ที่ address bar 

ปกติ เมื่อเราเปิด Command Prompt ขึ้นมาจะไปอยู่ที่ไดเร็กทอรีของ user เช่น C:\Users\ชื่อผู้ใช้ แบบนี้เป็นต้นถ้าเราจะย้ายพื้นที่ทำงานไปที่โฟลเดอร์ หรือ ไดเร็กทอรีอื่น เราใช้คำสั่ง cd/d ก็ได้ 

สมมติว่า จะสร้างโฟลเดอร์ชื่อ DataRevol จะใช้คำสั่งนี้

mkdir DataRevol

ถ้าจะสร้างโฟลเดอร์ชื่อ Data กับ Revol (2 โฟลเดอร์) ใช้คำสั่งนี้

mkdir Data Revol
md Data Revol

ถ้าอยากจะสร้างโฟลเดอร์เดียว แต่ใช้ชื่อโฟลเดอร์ว่า Data Revol (มีเว้นวรรค) จะต้องใส่เครื่องหมายคำพูด “ “ ครอบหน้าหลัง เช่น

mkdir “Data Revol”

หรือ

md “Data Revol”

แต่ถ้าจะสร้างโฟลเดอร์ชื่อ Data แล้วข้างในให้มีโฟลเดอร์ชื่อ Revol อยู่ จะเป็น

md Data\Revol

หรือ

mkdir Data\Revol

โปรดสังเกตว่าใช้ แบ็กสแลช (\) ไม่ใช่ สแลช (/) ถ้าใช้ผิด จะขึ้นคำว่า The syntax of the command is incorrect.

หรือไปสร้างโฟลเดอร์ในไดร์ฟ D ก็จะเป็น

md D:\DataRevol

แบบนี้เป็นต้น

Make Directory

โอเค น่าจะพอเห็นภาพแล้ว

อ้างอิง: วิกิพีเดีย

วิธีสร้างโฟลเดอร์ โดยใช้ลิสต์รายชื่อ

บางท่านคงเห็นแล้วว่าเราสร้างหลายโฟลเดอร์ได้ด้วยคำสั่ง md แต่สำหรับการสร้างโฟลเดอร์ร่วม 8,000 โฟลเดอร์ การจะมาเขียนไปทีละชื่อคงไม่เหมาะเท่าไหร่ เราจะสร้างลิสต์รายชื่อ น่าจะดีกว่า

ขั้นแรก สร้างเป็นลิสต์รายชื่อเก็บไว้ใน Text File (ตอนที่ทำมีรายชื่ออยู่ใน Excel แล้วก็ copy มาลงที่ Text File เลย) สมมติตั้งชื่อว่า list.txt

จากนั้น เข้า Command Prompt เราจะใช้ MD แต่จะให้วนลูปโดยดึงค่าจากลิสต์ใน Text File มาใช้

คำสั่งลูปก็คือ

FOR %variable IN (set) DO command [command-parameters]

ก็คือ for จะใช้เป็นเงื่อนไข จะตามด้วย do ว่า ให้ทำอะไร

ในที่นี้ เราจะตั้งให้ for ด้วยการอ่าน รายชื่อ (%variable) ใน list.txt เพื่อใช้ค่า รายชื่อ นั้นมาสร้างโฟลเดอร์ (คำสั่งสร้างโฟลเดอร์คือ md)

ให้อ่านค่าใน Text File จะต้องใช้ for/f เพื่อสั่งให้อ่านในไฟล์ 

ซึ่งไฟล์ที่เรากำหนดก็คือ (set) ในที่นี้ จะเป็น list.txt ที่เราสร้างไว้แล้ว

ส่วน %variable จะตั้งเป็น %d

เราเขียนคำสั่งได้สองแบบ

แบบที่ 1 

for /f %d in (list.txt) do md %d

อธิบายง่าย ๆ คือ 

for /f คือ “จงทำลูปโดยอ่านค่าใน text file”

  • %d คือ “ค่าตัวแปรที่อยู่ใน text file”
  • In (list.txt) คือ “ในไฟล์ list.txt”
  • Do md %d คือ “เมื่ออ่านแล้วจงสร้าง directory (หรือโฟลเดอร์นั่นแล) ด้วยชื่อตัวแปรที่อ่านได้”
for /f %d in (list.txt) do md %d

ก็คือ ทำซ้ำโดยการอ่านชื่อใน list.txt แล้วจงสร้างโฟลเดอร์โดยใช้ชื่อที่อ่านได้ ทำซ้ำแบบนี้จนครบทั้งหมด

คำเตือน

อย่าลืมดูว่า text file บันทึกในรหัสภาษาอะไร อย่างเช่น ตัวอย่างนี้ บันทึกเป็น UTF-8 แต่คอมพิวเตอร์ที่ใช้ไม่ได้เป็น UTF-8 ผลจะออกมาแบบนี้ 

วิธีสร้างโฟลเดอร์

วิธีดูง่าย ๆ ว่าตอนนี้ใช้ รหัสภาษาหรือ character encoding อะไร เปิด Notepad มาดูที่มุมขวาด้านล่าง

ถ้าใช้ windows แนะนำให้บันทึกเป็น ANSI กดบันทึกเป็น (save as) แล้ว เลือกรหัส (encoding) ANSI ก่อนกดบันทึก (save) นะจ๊ะ

วิธีสร้างโฟลเดอร์ โดยทำเป็น bat

ถ้าต้องทำบ่อย ๆ เรามาทำ shortcut จะได้ไม่ต้องเปิด command line บ่อย ๆ ด้วยการทำ .bat ดีกว่า นั่นคือ เขียน

for /f %d in (list.txt) do md %d ลงใน text file แล้ว save จาก .txt เป็น .bat (ใช้ rename ธรรมดานี่แหละจ้ะ)

แต่ว่า พอเป็น .bat การสร้าง %variable จะต้องใส่ % เพิ่มเข้าไปด้วย คำสั่งจะเป็นแบบนี้

for /f %%d in (list.txt) do md %%d

แบบที่ 2

ความจริงก็คือแบบที่ 1 นั่นแหละ 

for /f "tokens=* delims=,"  %d in (list.txt) do md %d

ลองดูค่า parameter จาก https://ss64.com/nt/for.html ก็แล้วกันเนอะ อันนี้เอามาลงให้ดูว่า การเขียนโค้ดมันเขียนได้หลายแบบเฉย ๆ

วิธีสร้างโฟลเดอร์ โดยใช้ Excel

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

เราแค่เติม md หน้า ลิสต์รายชื่อทั้งหมด แล้ว copy มาวาง จะใน command prompt หรือ ใน Text File เพื่อจะทำเป็น .bat ก็ได้

ArcGIS cmd Coordinate System data DataManagement Datum directory encoding folder Font GDB GIS GISBasics IDE Indian 1975 install interpreter Microsoft 365 organised Python Thai VBA WGS 1984

Other Posts