ใช้ Forfiles เพื่อประมวลผลไฟล์ตามอายุ

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

เป็นเรื่องดีเสมอที่จะต้องรู้จักเวทมนตร์ของบรรทัดคำสั่งเนื่องจากบางครั้งการประมวลผลคำสั่งด้วยวิธีนั้นก็ง่ายกว่า

คู่มือนี้แสดงให้เห็นถึงไฟล์ Forfiles คำสั่งใน Windows Vista และ Windows 7 (อัปเดต: พร้อมใช้งานใน Windows เวอร์ชันใหม่กว่า)

Forfiles สามารถประมวลผลไฟล์ตามชื่อนามสกุลไฟล์และอายุ ตัวอย่างเช่นเป็นไปได้ที่จะค้นหาเอกสารทั้งหมดในไดเร็กทอรีที่เก่ากว่า 20 วันหรือเอกสารทั้งหมดใน c: เอกสารที่มีการเปลี่ยนแปลงตั้งแต่วันที่ระบุ

คำสั่ง forfiles สามารถใช้ร่วมกับตัวเลือกการประมวลผลเพื่อลบไฟล์เหล่านั้นหรือสร้างรายการไฟล์ทั้งหมดที่ตรงกับตัวกรอง มาดูคำสั่ง forfiles กันดีกว่า

FORFILES [/ P ชื่อพา ธ ] [/ M searchmask] [/ S] [/ คำสั่ง C] [/ D [+ | -] วว / ดด / ปปปป]

คำอธิบาย: เลือกไฟล์ (หรือชุดไฟล์) และรันคำสั่งบนไฟล์นั้น สิ่งนี้มีประโยชน์สำหรับงานแบทช์

forfiles

รายการพารามิเตอร์:

  • / P pathname ระบุเส้นทางที่จะเริ่มค้นหา โฟลเดอร์เริ่มต้นคือไดเร็กทอรีการทำงานปัจจุบัน (.)
  • / M searchmask ค้นหาไฟล์ตาม searchmask Searchmask เริ่มต้นคือ '*'
  • / S สั่งให้ไฟล์เรียกคืนในไดเรกทอรีย่อย เช่น 'DIR / S'
  • คำสั่ง / C ระบุคำสั่งเพื่อดำเนินการสำหรับแต่ละไฟล์ สตริงคำสั่งควรอยู่ในเครื่องหมายคำพูดคู่ คำสั่งเริ่มต้นคือ 'cmd / c echo @file'

สามารถใช้ตัวแปรต่อไปนี้ในสตริงคำสั่ง:

  • @file - ส่งคืนชื่อของไฟล์
  • @fname - ส่งคืนชื่อไฟล์ที่ไม่มีนามสกุล
  • @ext - ส่งคืนเฉพาะนามสกุลของไฟล์
  • @path - ส่งคืนเส้นทางแบบเต็มของไฟล์
  • @relpath - ส่งกลับเส้นทางสัมพัทธ์ของไฟล์
  • @isdir - ส่งคืน 'TRUE' หากประเภทไฟล์เป็นไดเร็กทอรีและ 'FALSE' สำหรับไฟล์
  • @fsize - ส่งคืนขนาดของไฟล์เป็นไบต์
  • @fdate - ส่งคืนวันที่แก้ไขล่าสุดของไฟล์
  • @ftime - ส่งคืนเวลาที่แก้ไขล่าสุดของไฟล์

ในการรวมอักขระพิเศษในบรรทัดคำสั่งให้ใช้รหัสฐานสิบหกสำหรับอักขระในรูปแบบ 0xHH (เช่น 0x09 สำหรับแท็บ) คำสั่งภายใน CMD.exe ควรนำหน้าด้วย 'cmd / c'

/ D date เลือกไฟล์ที่มีวันที่แก้ไขล่าสุดมากกว่าหรือเท่ากับ (+) หรือน้อยกว่าหรือเท่ากับ (-) วันที่ที่ระบุโดยใช้รูปแบบ 'dd / MM / yyyy' หรือเลือกไฟล์ที่มีวันที่แก้ไขล่าสุดมากกว่าหรือเท่ากับ (+) วันที่ปัจจุบันบวกวัน 'dd' หรือน้อยกว่าหรือเท่ากับ (-) วันที่ปัจจุบันลบวันที่ 'dd' จำนวนวัน 'dd' ที่ถูกต้องสามารถเป็นตัวเลขใดก็ได้ในช่วง 0 - 32768 ส่วน '+' จะถือเป็นเครื่องหมายเริ่มต้นหากไม่ได้ระบุไว้

/? แสดงข้อความช่วยเหลือนี้ ไฟล์วิธีใช้นี้สามารถเปิดได้โดยป้อนคำสั่ง forfiles /? ในพรอมต์คำสั่ง กด Windows-R พิมพ์ cmd และกด Enter เพื่อเปิดบรรทัดคำสั่งใน Windows

คำสั่ง forfiles / P c: test / M .doc / S / D -10 ค้นหาไดเร็กทอรี c: test และไดเร็กทอรีย่อยทั้งหมดสำหรับไฟล์ที่มีนามสกุล. doc ที่เก่ากว่า 10 วัน

พารามิเตอร์ / p ตามด้วยไดเร็กทอรีกำหนดไดเร็กทอรีเริ่มต้น / s รวมไดเร็กทอรีย่อยในการค้นหา / m จะกรองไฟล์และโฟลเดอร์ตามสตริงที่ป้อนและ / D กำหนดวันที่หรือช่วงเวลา

คำสั่ง / C ใช้เพื่อประมวลผลไฟล์ที่พบเพิ่มเติม ตัวอย่างเช่นสามารถใช้เพื่อรันคำสั่งต่อไปนี้: / C 'cmd / c echo @fname'> test.txt สะท้อนชื่อของแต่ละไฟล์ที่พบและบันทึกผลลัพธ์ใน text.txt ในไดเร็กทอรีเดียวกัน

คำสั่งเต็มจะมีลักษณะดังนี้ forfiles / P c: test / M .doc / S / D -10 / C 'cmd / c echo @fname'> test.txt

ความเป็นไปได้อีกประการหนึ่งคือการลบไฟล์ที่ตรงกับการค้นหาซึ่งทำได้ด้วยคำสั่ง / C 'cmd / c del @File

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