วันเสาร์ที่ 30 เมษายน พ.ศ. 2559

เปลี่ยน Label, DriveLetter ในเครื่องของเราด้วย Method Put() บน WMI กันดีกว่า


    ไม่นานมานี้ได้มีโอกาสเขียนสคริปเล็ก ๆ ในการเปลี่ยน DriveLetter ในเครื่อง ซึ่งก็สามารถทำได้หลายวิธี ไม่ว่าจะเป็นการใช้ Diskpart หรือแม้แต่ Method บน WMI ซึ่งบทความนี้เราจะมาใช้ Method บน WMI กันครับ

    ก่อนอื่น เรามาดูข้อมูลในแต่ละ Drive กันก่อนซึ่งจะแสดงให้ดูแบบ 4 แบบด้วยกันคือบน This PC, diskpart, Get-WmiObject และคำสั่ง Get-Volume (เฉพาะ Windows Server 2012 R2 and Windows 8.1 ขึ้นไปเท่านั้น) ตามลำดับ





    ตอนนี้เรามาดูวิธีการเปลี่ยน Label กับ DriveLetter กันครับ


    เริ่มต้นด้วยการเลือก Drive ที่เราจะเปลี่ยนก่อนครับ ซึ่งผมเลือกที่จะเปลี่ยน Drive D: ส่วนวิธีการเปลี่ยนและผลลัพธ์ก็เป็นไปตามภาพด้านล่างเลยครับ



    ...
แล้วเจอกันบทความหน้าครับ

วันเสาร์ที่ 20 กุมภาพันธ์ พ.ศ. 2559

เขียนฟังก์ชัน Validate-Filename, Validate-Path ง่าย ๆ กันดีกว่า


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

    ปกติเวลาเราใส่อักขระต้องห้ามลงไปก็จะมีข้อความเตือนว่าห้ามใช้ ดังรูป


    ใน Powershell เราสามารถนำฟังก์ชันของ .NET มาใช้ได้ ซึ่งฟังก์ชันที่เราจะเขียนต้องใช้มีอะไรบ้าง ไปดูกันเลยครับ


    จากรูปด้านบนทำให้เราทราบว่าอักขระต้องห้ามนั้นมีอะไรบ้าง ทีนี้เรามาดูฟังก์ชันกันดีกว่า ว่าเป็นอย่างไร


   จากรูปด้านบน เราได้เขียนฟังก์ชันชื่อ Validate-Filename โดยที่ฟังก์ชันนี้ต้องใส่ Parameter ชื่อว่า Name ซึ่งก็คือชื่อไฟล์หรือโฟลเดอร์ที่เราต้องการตรวจสอบ จากนั้นฟังก์ชันจะส่งผลลัพธ์ออกมาว่าชื่อที่เราใช้สามารถใช้งานได้หรือไม่ ไปดูตัวอย่างกันครับ


    ถัดมาเป็นฟังก์ชัน Validate-Path และตัวอย่างครับ



...
แล้วเจอกันบทความหน้าครับ


วันเสาร์ที่ 30 มกราคม พ.ศ. 2559

วิธีดูไฟล์ข้างใน Folder, subfolder และวิธีเช็คขนาด Folder [Extra]


    บทความก่อนหน้านี้ (นานมาก) ในหัวข้อ "วิธีดูไฟล์ข้างใน Folder, subfolder และวิธีเช็คขนาด Folder" ได้พูดถึงวิธีการวิธีการข้างต้น แบบพื้นฐานด้วยคำสั่งของ Powershell ซึ่งก็สามารถตอบโจทย์ได้ตามที่เราต้องการยกเว้นเรื่องของ "ความเร็ว" ซึ่งในบทความนี้ เราจะมาพูดถึงวิธีที่เช็คขนาดโฟลเดอร์โดยใช้ในการรับข้อมูลที่เร็วขึ้น เราไปดูกันครับ

เริ่มแรก ผมมีโฟลเดอร์นึง ที่มีขนาดตามภาพครับ


เรามาลองเช็คขนาดโฟลเดอร์ด้วยวิธีเดิมในบทความที่แล้ว แล้วลองจับเวลากันครับ ว่าได้ผลลัพธ์เป็นอย่างไร


จากภาพบน จะเห็นว่า ผลลัพธ์ที่ได้ก็คือ โฟลเดอร์มีขนาด 1.50 GB ตรงตามที่เราต้องการ และความเร็วที่ใช้ในการประมวลผลคือ 0.61 วินาที (แอบปัดให้)

ทีนี้เรามาดูอีกวิธีกันครับ วิธีนี้เป็นการใช้ FileSystemObject (FSO) object model เราไปดูกันครับ


ผลลัพธ์ที่ได้ โฟลเดอร์มีขนาดเท่ากัน แต่เวลาประมวลผลนั้นแค่ 0.007 วินาที ซึ่งใช้เวลาต่างกันประมาณเกือบ 100 เท่า ลองจินตนาการดูว่า ถ้าเราต้องการเช็คโฟลเดอร์ที่มีขนาดใหญ่กว่านี้ จะช่วยประหยัดเวลาเราไปมากขนาดไหน ^__^

...
แล้วเจอกันบทความหน้าครับ