จะเพิ่มคำนำหน้าให้กับไฟล์และโฟลเดอร์ทั้งหมดในโฟลเดอร์ได้อย่างไร? (Windows)


14

คำสั่งต่อไปนี้จะเปลี่ยนชื่อไฟล์เท่านั้น แต่ไม่เปลี่ยนโฟลเดอร์

for %a in (*) do ren "%a" "00_%a"


คุณต้องใช้ไฟล์แบตช์หรือไม่? คุณไม่สามารถใช้โปรแกรมเช่น Rename Master เพื่อทำสิ่งนี้ได้หรือไม่?
Dour High Arch

คำตอบ:


15

คำสั่งต่อไปนี้จะเปลี่ยนชื่อไฟล์เท่านั้น แต่ไม่เปลี่ยนโฟลเดอร์

for %a in (*) do ren "%a" "00_%a"

หมายเหตุ:

  • forไม่แนะนำให้ใช้ตามข้างต้น
  • มีความเป็นไปได้ที่ไฟล์นั้นสามารถเปลี่ยนชื่อได้หลายครั้ง
  • ดูเหตุผลด้านล่าง

ใช้สิ่งต่อไปนี้ในcmdเชลล์:

for /f "tokens=*" %a in ('dir /b') do ren "%a" "00_%a"

ในไฟล์แบตช์ (แทนที่%ด้วย%%):

for /f "tokens=*" %%a in ('dir /b') do ren "%%a" "00_%%a"

บันทึก:

มันเป็นสิ่งสำคัญที่คุณใช้และไม่ง่ายFOR /FFOR

การFOR /Fรวบรวมผลลัพธ์ทั้งหมดของDIRคำสั่งก่อนที่จะเริ่มการวนซ้ำในขณะที่การFORเริ่มต้นทำซ้ำง่ายหลังจากบัฟเฟอร์ภายในเต็มซึ่งเพิ่มความเสี่ยงในการเปลี่ยนชื่อไฟล์เดียวกันหลายครั้ง

เป็นไปตามคำdbenhamในคำตอบของเขาที่จะเพิ่ม "ข้อความ" ต่อท้ายชื่อไฟล์หลาย :


อ่านเพิ่มเติม


0

ในการดำเนินการนี้สำหรับวนซ้ำในโฟลเดอร์ (ไดเรกทอรี) แทนไฟล์เพียงใส่/Dสวิตช์

for /D %a in (*) do ren "%a" "00_%a"

จากfor /?:

FOR / D% ตัวแปร IN (set) คำสั่ง DO [คำสั่งพารามิเตอร์]

If set contains wildcards, then specifies to match against directory
names instead of file names.

renทำงานกับโฟลเดอร์ ข้อ จำกัด คือ "คุณไม่สามารถระบุไดรฟ์หรือเส้นทางอื่นสำหรับเป้าหมายได้
DavidPostill

@DavidPostill Renใช่มันเป็นนิสัยเก่าคืบคลานในผมเปลี่ยนมันกลับไป
Ƭᴇcʜιᴇ007

คุณสามารถทำทั้งไฟล์และโฟลเดอร์ในคำสั่งเดียว (ดูคำตอบของฉัน) และฉันสงสัยว่าfor /dอาจมีปัญหาในการพยายามประมวลผลค่าหลาย ๆ ครั้ง (ดูคำตอบของฉันด้วย)
DavidPostill
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.