中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 19:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (已结)如何刪除根目錄下 除了特定資料夾外的所有檔案
楼 主 (已结)如何刪除根目錄下 除了特定資料夾外的所有檔案 发表于 2005-09-28 20:19 ·  中国 台湾 新北市 中华电信
初级用户
★★
积分 154
发帖 54
注册 2005-09-25 01:53
UID 42804
状态 离线
請問DOS下有沒有刪除根目錄下 除了特定資料夾外的所有檔案

如:E:\下 有 資料夾a 資料夾b 資料夾c 檔案a 檔案b 檔案c
但是我只要保留"資料夾a"其他全部刪除
請問批次檔要怎麻寫 謝謝!

[ Last edited by willsort on 2005-10-11 at 00:57 ]
2 发表于 2005-09-30 14:53 ·  中国 重庆 渝中区 电信
高级用户
★★
积分 772
发帖 273
注册 2004-10-23 00:00
UID 32861
性别 男
状态 离线
请问使用环境
http://www.msfans.net/bbs/
3 发表于 2005-10-01 01:50 ·  中国 台湾 新北市 中华电信
初级用户
★★
积分 154
发帖 54
注册 2005-09-25 01:53
UID 42804
状态 离线
windows 2000 謝謝!!
4 发表于 2005-10-01 15:43 ·  中国 辽宁 锦州 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
UID 40733
性别 男
状态 离线
试试这个:

for /f "delims=" %i in ('dir /ad /b ^| findstr /v "資料夾a"') do echo "%i" ||echo del "%i"


此操作有危险。实际应用请将
第一个echo,替换为:rd /s /q
第二个echo,替换为:del /f
如批处理下将所有 %i 替换为:%%i

[ Last edited by 无奈何 on 2005-10-1 at 15:58 ]
5 发表于 2005-10-01 22:46 ·  中国 台湾 新北市 中华电信
初级用户
★★
积分 154
发帖 54
注册 2005-09-25 01:53
UID 42804
状态 离线
謝 明天去公司試看看 不敢在家裡的電腦用
6 发表于 2005-10-02 07:38 ·  中国 安徽 宿州 泗县 电信
银牌会员
★★★
积分 1,339
发帖 595
注册 2004-05-26 00:00
UID 25306
性别 男
来自 安徽 宿州
状态 离线
不解楼主的问题:①Dos下(除非你使用了中文操作系统)进入中文目录不易,更别说删除了;②既然是在Dos下删除目录,又何来的Win2000环境?
7 发表于 2005-10-02 11:46 ·  中国 台湾 新北市 中华电信
初级用户
★★
积分 154
发帖 54
注册 2005-09-25 01:53
UID 42804
状态 离线
1. 我只保留特定目錄 特定目錄不一定為中文
2.難道 2000就沒有dos嗎? 或許你認為 c大於命令提示字元不是dos

那妳認為何為dos 純dos嗎? 純dos才算dos嗎 那pc-dos ms-dos那個才算dos
那多才開機呢用到2000的ntlsdr引導 那它還算dos嗎?
妳知道dos的全名是什麼嗎?
"Disk Operation System"翻成中文叫"磁碟作業系統"
那window 2000是什嗎 nt架構(New Technology)
難道它就不能執行dos命令嗎?
要是妳有疑問 那我就有更多的疑問
8 发表于 2005-10-07 17:40 ·  中国 山西 运城 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
UID 19
性别 男
状态 离线
Re dosfroum:

关于DOS、命令行、纯DOS、CMD、COMMAND之间错综关系本论坛以讨论了不少,你可以搜索看看。至于主楼的问题,在NT CMD下比较简单,除了无奈何兄的方法外,也可以考虑下面的方案:

for /f "delims=" %f in ('dir /a /b') do @if not "%f"=="資料夾a" rd /s /q "%f" 2>nul || del /f /a "%f" 2>nul
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
9 发表于 2005-10-07 19:53 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
为何不用 ctrl+a ctrl+鼠标左键点"資料夾a" shift+del 刪除根目錄下 除了特定資料夾外的所有檔案!
10 发表于 2005-10-07 21:55 ·  中国 山东 济南 移动
钻石会员
★★★★★
积分 10,046
发帖 3,039
注册 2002-11-11 00:00
UID 223
性别 男
状态 离线
可以用比较笨的方法,只给不想删除的文件置上只读属性,然后del *.*

[ Last edited by Michael on 2005-10-7 at 21:56 ]
简单就是美
11 发表于 2005-10-07 22:45 ·  中国 山西 大同 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
UID 19
性别 男
状态 离线
Re qwe1234567:

命令行的一大优点是它可以写进批处理中,而这个批处理可能会多次的在不同时间不同场合下运行,而如果换作手工操作,工作量也许会很大。

Re Michael:

楼住不仅要求删除文件,还包括文件夹,所以需要进行进一步的筛选和控制。在纯DOS下的纯批处理下,倒也并非无法实现,只是方案会更复杂一些。当然,某些辅助性工具,会让这个工作变得很简单,这就是自己编程自己使用和他人编程我来使用的乐趣不同了。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
12 发表于 2005-10-08 17:46 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
13 发表于 2005-10-08 19:28 ·  中国 广东 广州 海珠区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
UID 15812
性别 男
来自 广东广州
状态 离线
Originally posted by qwe1234567 at 2005-10-8 17:46:
难道按几下键还没有批处理简单、安全吗?

你说的有道理,但楼主要求在DOS下。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
14 发表于 2005-10-08 20:42 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
15 发表于 2005-10-08 21:16 ·  中国 山西 大同 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
UID 19
性别 男
状态 离线
Re qwe1234567:

你仍然没有理解我的本意。我的意思,命令行代码可以写进批处理中,而只需要点击一下执行即可完成任务,或者加入到自动运行机制中自动运行。而此时如果有成百上千台系统需要进行此项操作,或者某系统需要频繁进行此操作,用鼠标选择再手动删除就未免过于繁琐和机械了。当然,命令行与鼠标操作各有自己的优缺点,正如GUI(Graphic User Interface)界面与CLI(Command Line Interface)界面一样,一味扬此弃彼也未免失之偏颇了。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
论坛跳转: