มีคำสั่ง 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]".