DOS คำสั่ง Forfiles ดำเนินการเกี่ยวกับไฟล์(หลายๆไฟล์) ในโฟลเดอร์ที่ระบุ

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
jataz2
PHP Super Member
PHP Super Member
โพสต์: 275
ลงทะเบียนเมื่อ: 22/02/2011 11:48 am

DOS คำสั่ง Forfiles ดำเนินการเกี่ยวกับไฟล์(หลายๆไฟล์) ในโฟลเดอร์ที่ระบุ

โพสต์ที่ยังไม่ได้อ่าน โดย jataz2 »

ยกตัวอย่าง

c:\>forfiles /s /m *.* /d -365 /c "cmd /c echo @file is at least one year old."

ลิสรายชื่อไฟล์ทุกไฟล์ในโฟลเดอร์รวมถึงค้นลึกเข้าไปในไดเรกทอรี่ย่อยด้วย ทุกไฟล์ที่มีอายุเก่ากว่า 360 วันนับจากวันที่สร้างไฟล์
แล้ว echo ชื่อไฟล์นั้นออกมา พร้อมต่อท้ายด้วย คำว่า is at least one year old

เราสามารถประยุกต์ได้มากมายจาก forfile เช่น ค้นหาไฟล์ที่ต้องการ และย้ายไปยัง folder อื่น หรือลบทิ้งหรือทำบางอย่างกับไฟล์นั้น

เราอาจาสร้าง batch ที่มีชุดคำสั่ง dos forfiles ที่ลบไฟล์ทุกไฟล์ใน c:/temp ทิ้งถ้ามีอายุเกิน 7 วัน จากนั้นตั้ง windows schedule task ให้มาเรียก batch ไฟล์อาทิตย์ละครั้งครับ เราก็สบายเลย ไม่ต้อง coding ลบไฟล์ด้วย c# สักบรรทัด ใช้วิธีนี้เเทน

อ่านเพิ่มเติมได้ที่นี่ครับ
https://technet.microsoft.com/en-us/lib ... K_examples
ภาพประจำตัวสมาชิก
jataz2
PHP Super Member
PHP Super Member
โพสต์: 275
ลงทะเบียนเมื่อ: 22/02/2011 11:48 am

Re: DOS คำสั่ง Forfiles ดำเนินการเกี่ยวกับไฟล์(หลายๆไฟล์) ในโฟลเดอร์ที่ระบุ

โพสต์ที่ยังไม่ได้อ่าน โดย jataz2 »

option ของ forfiles
/p <Path> : ระบุพาธ
/m <SearchMask> : เช่น /m *.bat หมายถึง ทุกไฟล์ที่เป็น .bat
/s : search into subdirectories recursively (ค้นหาลึกเข้าไปทุกๆ subdirctory เเละ subdirectory ย่อยๆอีก)
/c "<Command>" : คำสั่งที่เราจะกระทำกับไฟล์ เมื่อค้นเจอ
/d : เกี่ยวกับวันที่ของไฟล์
ภาพประจำตัวสมาชิก
jataz2
PHP Super Member
PHP Super Member
โพสต์: 275
ลงทะเบียนเมื่อ: 22/02/2011 11:48 am

Re: DOS คำสั่ง Forfiles ดำเนินการเกี่ยวกับไฟล์(หลายๆไฟล์) ในโฟลเดอร์ที่ระบุ

โพสต์ที่ยังไม่ได้อ่าน โดย jataz2 »

forfiles -p "D:\Mix" -s -m *.* -d -30 -c "cmd /c del @path"

ลบไฟล์ที่มีอายุเกิน 30 วันใน D:\Mix
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 2