ฉันพยายามเขียนโค้ด vba ที่ส่งบรรทัดของรหัสไปยังพรอมต์คำสั่งและดำเนินการ ฉันมีส่วนนั้นลง แต่ฉันต้องการความช่วยเหลือในการรับรหัสจริงให้ทำงาน
ฉันต้องการแสดงรายการไฟล์ทั้งหมดในโฟลเดอร์เฉพาะที่เป็นนามสกุลไฟล์. doc แต่ฉันต้องการแยกอักขระสามตัวแรกของชื่อไฟล์ที่ได้รับการพิมพ์ไปยังไฟล์ข้อความเอาต์พุตของฉัน (หมายเหตุ: ฉันกำลังใช้ vba เพราะนี่เป็นหนึ่งในคำสั่งที่แตกต่างกันหลายคำที่ฉันต้องการใช้กับมาโคร vba เดี่ยวและแบตช์ไฟล์ถูกบล็อกสำหรับฉันดังนั้นฉันต้องการทำงานโดยตรงกับพรอมต์คำสั่ง)
รหัสต่อไปนี้ใช้งานได้และให้ชื่อไฟล์ที่ไม่มีนามสกุลไฟล์ (เช่นABC201704.docจะกลับมาเป็นABC201704 )
%comspec% /c for %i in (C:\Test\ABC*.doc) do @echo %~ni >> C:\Test\Output.txt
อย่างไรก็ตามฉันไม่ทราบวิธีการแก้ไขเพื่อไม่ให้มี 3 ตัวอักษรแรก (เช่นมันจะส่งคืน201704แทนABC201704 ) ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก! ฉันลองใช้ลิงค์ต่อไปนี้ แต่ฉันไม่สามารถเข้าใจวิธีการทำงานให้กับสถานการณ์ของฉัน
วิธีใดก็ตามที่จะได้รับอักขระสองสามตัวแรกของชื่อไฟล์ในการเขียนโปรแกรมไฟล์แบตช์ DOS