มีคำสั่ง MS-DOS ที่ให้ฉันลบไฟล์ทั้งหมดยกเว้นไฟล์เดียวหรือไม่?
พิจารณาเป็นตัวอย่างไฟล์ต่อไปนี้:
a.001
a.002
a.003
a.exe
a.c
มีคำสั่งให้ลบไฟล์ทั้งหมดยกเว้นa.c
หรือไม่?
มีคำสั่ง MS-DOS ที่ให้ฉันลบไฟล์ทั้งหมดยกเว้นไฟล์เดียวหรือไม่?
พิจารณาเป็นตัวอย่างไฟล์ต่อไปนี้:
a.001
a.002
a.003
a.exe
a.c
มีคำสั่งให้ลบไฟล์ทั้งหมดยกเว้นa.c
หรือไม่?
คำตอบ:
คุณสามารถใช้คำสั่งfor
และif
เพื่อให้บรรลุสิ่งนี้:
for %i in (*) do if not "%~i" == a.c del "%~i"
สิ่งนี้จะผ่านไดเรกทอรีปัจจุบันและเปรียบเทียบแต่ละชื่อไฟล์เป็น ac หากไม่ตรงกันไฟล์จะถูกลบ
for
เป็นประจำคุณจะพบกับสถานการณ์ที่บ้าคลั่งทุกประเภท :)
del "%i"
IF
IF /I
คุณสามารถตั้งค่าไฟล์ให้อ่านได้อย่างเดียวก่อนที่จะลบทุกอย่าง
attrib +r a.c
del *.*
attrib -r a.c
ไม่ไม่มี ฉันต้องการให้ไดเรกทอรีคัดลอกไฟล์ที่สำคัญเป็นมันลบ และย้ายไฟล์กลับ จากนั้นลบไฟล์ temp
mkdir temp
move a.c temp
erase *.*
move temp\* .
rmdir temp
FOR %f IN (*.*) DO IF NOT [%f]==[a.c] DEL /Q %f
%f
อาจมีช่องว่างในชื่อไฟล์
FOR /F "tokens=1-4" %%a in ('dir /a:-d /b /s %app_path%^|find /v "%file%"') DO Del /q %%a %%b %%c %%d
%app_path%
และ%file%
เป็นรูทของทรีเพื่อสำรวจและไฟล์เพื่อหลีกเลี่ยงการลบตามลำดับ คืออะไร^
และทำไมเราส่งโทเค็นสี่รายการต่อไฟล์ไปยังDel
คำสั่ง
สำหรับความเร็วฉันใช้delen :
delen /! a.c
TCC / LEยังมีdel
คำสั่งที่มีประสิทธิภาพมากขึ้น:
del /[!a.c] *
del /[!a.c] *
yeldsInvalid switch - "[!a.c]".