ใช้ Forfiles เพื่อประมวลผลไฟล์ตามอายุ
- หมวดหมู่: ของ Windows
เป็นเรื่องดีเสมอที่จะต้องรู้จักเวทมนตร์ของบรรทัดคำสั่งเนื่องจากบางครั้งการประมวลผลคำสั่งด้วยวิธีนั้นก็ง่ายกว่า
คู่มือนี้แสดงให้เห็นถึงไฟล์ Forfiles คำสั่งใน Windows Vista และ Windows 7 (อัปเดต: พร้อมใช้งานใน Windows เวอร์ชันใหม่กว่า)
Forfiles สามารถประมวลผลไฟล์ตามชื่อนามสกุลไฟล์และอายุ ตัวอย่างเช่นเป็นไปได้ที่จะค้นหาเอกสารทั้งหมดในไดเร็กทอรีที่เก่ากว่า 20 วันหรือเอกสารทั้งหมดใน c: เอกสารที่มีการเปลี่ยนแปลงตั้งแต่วันที่ระบุ
คำสั่ง forfiles สามารถใช้ร่วมกับตัวเลือกการประมวลผลเพื่อลบไฟล์เหล่านั้นหรือสร้างรายการไฟล์ทั้งหมดที่ตรงกับตัวกรอง มาดูคำสั่ง forfiles กันดีกว่า
FORFILES [/ P ชื่อพา ธ ] [/ M searchmask] [/ S] [/ คำสั่ง C] [/ D [+ | -] วว / ดด / ปปปป]
คำอธิบาย: เลือกไฟล์ (หรือชุดไฟล์) และรันคำสั่งบนไฟล์นั้น สิ่งนี้มีประโยชน์สำหรับงานแบทช์
รายการพารามิเตอร์:
- / 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
อย่างไรก็ตามขอแนะนำให้ทดสอบเอาต์พุตก่อนที่จะออกคำสั่งลบเพื่อให้แน่ใจว่าลบเฉพาะไฟล์ที่ถูกต้องเท่านั้น ผู้ใช้ที่มีประสบการณ์อาจสร้างไฟล์แบตช์เพื่อเรียกใช้ไฟล์อย่างสม่ำเสมอ