คำสั่ง BAT เพื่อแทรกอักขระ ในชื่อไฟล์

ปัญหา

ฉันมีปัญหาหนึ่งที่แก้ปัญหาฉันสะดุดเมื่อไม่กี่ปีที่ผ่านมา แต่ - อนิจจา - ที่เก็บข้อมูลของฉันล้มเหลวเมื่อเร็ว ๆ นี้และฉันหายไปไฟล์ชุด!

เราเริ่มด้วยชื่อไฟล์ที่น่าอึดอัดใจนี้:

อันดับ (ทั้งหมด) _so2_1hr_conc_A_2p5h10.dat

ยูทิลิตี้ BAT ต่อไปนี้จะปิดบังทุกอย่างไว้ด้านหน้า 'A' (23 ตัวแรก):

 @echo off สำหรับ %% i ใน (* .dat) ทำ (ตั้งค่า fName = %% i) & โทร: เปลี่ยนชื่อ goto: eof: เปลี่ยนชื่อ :: ครอบตัดตัวอักษร 23 อันดับแรกของ fName ('rank (all) _so2_1hr_conc_'): ren% fName%% fName: ~ 23% goto: eof 

ที่ดี! วาทกรรมนี้:

A_2p5h10.dat

ตอนนี้ฉันต้องแปลงเป็น:

A_2p5h100.dat

ประกาศ '... h10' ต้องเป็น '... h100' โปรดทราบว่าในขณะที่ในตัวอย่างนี้ส่วนที่นำหน้า '.' คือ 'A_2p5h10' ซึ่งอาจเป็นสตริง 8 อักขระใด ๆ (ดังนั้นเราจะต้องใช้อักขระตัวแทนหรือบางอย่าง)

คุณกรุณาแนะนำชุดคำสั่งที่จะเพิ่ม '0' ที่อยู่ตรงกลางของชื่อไฟล์ (ก่อนหน้า '.') ได้ไหม? มีหลายร้อยชื่อไฟล์ในไดเรกทอรีที่ต้องมีการแปลงนี้

ตามที่ฉันจำได้คำสั่งที่สำคัญ (ฉันเชื่อว่าใช้ REN) ซึ่งเคยทำสิ่งนี้ง่ายมาก (มี% มากกว่าหนึ่งอย่างที่ฉันจำได้)

สารละลาย

คุณสามารถใช้สคริปต์นี้:

 @echo off สำหรับ %% i ใน (* .dat) do (ตั้งค่า fName = %% i) & การโทร: เปลี่ยนชื่อ goto: eof: rename :: เปลี่ยนชื่อไฟล์โดยการทิ้ง 23 ตัวอักษรตัวแรกและ 7 อันสุดท้ายและเพิ่ม H100.plt ที่ส่วนท้าย ren% fName%% fName: ~ 23, -7% H100.plt กลับไปที่: eof 

บันทึก

ขอบคุณ Tommy สำหรับเคล็ดลับนี้ในฟอรัม

บทความก่อนหน้านี้ บทความถัดไป

เคล็ดลับยอดนิยม