ฉันพยายามทำบทเล็ก ๆ นี้ ฉันต้องการขอชื่อผู้ใช้เป็นหลักแล้วในไดเรกทอรีนั้นฉันเปลี่ยนชื่อ pngs ทั้งหมดเป็นชื่อ + หมายเลขโดยที่ตัวเลขนั้นเป็นตัววนซ้ำแบบง่าย 3 หลัก (000,001,002,003, ... , 010, ... 999)
@echo off
setlocal EnableDelayedExpansion
set /P id=Enter name:
set /a i=0
for %%f in (*.png) do (
set "n=000000%i%"
set "pad=!n:~-3!"
ren %%f %id%!pad!.png
set /a "i+=1"
)
PAUSE
ด้วยเหตุผลบางอย่าง iterator i มักจะเป็น 0 เสมอดังนั้นจึงมีการเปลี่ยนชื่อไฟล์เพียง 1 ไฟล์ในขณะที่ไฟล์อื่น ๆ นั้นไม่ได้มีชื่อเดียวกัน
ฉันค้นหามากใน webz, infact ฉันรู้ (และยังรู้) น้อยมากเกี่ยวกับเรื่องนี้สิ่งนี้เกือบจะเป็นแฟรงเกนสไตน์และมักจะรหัส frankensteins ไม่ทำงาน: /
ขอบคุณมาก
1
ถอนหายใจ ... นี่คือปัญหาหมายเลข 1 ที่ผู้คนใหม่ ๆ เผชิญกับปัญหา คำถามที่เกี่ยวข้องเกิดขึ้นเกือบทุกวันใน StackOverflow ค้นหา "การขยายแบตช์ล่าช้า" และดูว่าคุณไม่สามารถหาคำตอบได้
—
dbenham
พบว่าการทำสิ่งที่มีการนอนหลับ 3 ชั่วโมงไม่ได้ช่วยดังนั้นตอนนี้หลังจากนอนหลับฉันอ่านวลีเดิมอีกครั้ง "สังเกตว่าภายในลูปเราใช้! variable! แทนที่จะเป็น% variable%" และมันก็คลิกฉันว่าฉันต้องการเปลี่ยน 000% i% เป็น 000! i !, ขอบคุณ ฉันควรทำอย่างไรกับโพสต์นี้ ลบมัน?
—
guestPersonDude