สมมติว่าตอนนี้ฉันอยู่ใน c: \ test \ user แต่ฉันต้องลบไฟล์บางไฟล์ในไดเรกทอรีอื่นพูด C: \ testb \ data \ diff ไฟล์ที่ฉันต้องการลบคือไฟล์ที่ไม่ได้ขึ้นต้นด้วย AD_ เป็นไปได้ไหมที่จะทำสิ่งนี้ในข้อความสั่งบรรทัดคำสั่งเดียว?
สมมติว่าตอนนี้ฉันอยู่ใน c: \ test \ user แต่ฉันต้องลบไฟล์บางไฟล์ในไดเรกทอรีอื่นพูด C: \ testb \ data \ diff ไฟล์ที่ฉันต้องการลบคือไฟล์ที่ไม่ได้ขึ้นต้นด้วย AD_ เป็นไปได้ไหมที่จะทำสิ่งนี้ในข้อความสั่งบรรทัดคำสั่งเดียว?
คำตอบ:
คำสั่ง MS DOS ลบไฟล์ยกเว้นไฟล์ที่ขึ้นต้นด้วยคำนำหน้าจากไดเรกทอรีอื่น
ไฟล์ที่ฉันต้องการลบคือไฟล์ที่ไม่ได้ขึ้นต้นด้วย AD_ เป็นไปได้ไหมที่จะทำสิ่งนี้ในข้อความสั่งบรรทัดคำสั่งเดียว?
บรรทัดคำสั่งเพื่อลบออกจากโฟลเดอร์เฉพาะยกเว้นรูปแบบชื่อไฟล์เฉพาะ
เพียงแค่เรียกใช้คำสั่งด้านล่างจากบรรทัดคำสั่งด้วยการคัดลอกและวาง สิ่งนี้ใช้FOR / Fลูปที่มีDIRไปยังคำสั่งFINDSTRของรูปแบบที่จะจับคู่สำหรับการยกเว้น
FOR /F "TOKENS=*" %A IN ('DIR /A-D /B "C:\testb\data\diff" ^| FINDSTR /I /V "AD_"') DO DEL /Q /F "C:\testb\data\diff\%~A"
หากคุณต้องการตั้งค่าไดเรกทอรีของคุณอย่างชัดเจนเพื่อลบออกจากตัวแปรเช่นเดียวกับรูปแบบไฟล์ที่จะแยกออกด้านล่างเป็นตัวอย่างของการทำเช่นนี้
SET DelDir=C:\testb\data\diff
SET DelPattern=AD_
FOR /F "TOKENS=*" %A IN ('DIR /A-D /B "%DelDir%" ^| FINDSTR /I /V "%DelPattern%"') DO DEL /Q /F "%DelDir%\%~A"