中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 09:22
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何实现每次开机时删附D盘下多余的文件夹 查看 2,252 回复 8
楼 主 [求助]如何实现每次开机时删附D盘下多余的文件夹 发表于 2006-05-06 17:42 ·  中国 福建 厦门 电信
新手上路
积分 6
发帖 1
注册 2006-05-06 17:40
UID 55049
状态 离线
本来D盘里在的有的文件夹:Lgames , Ngames,游戏菜单 这三个文件夹。如何用批处理实现每次开机时删附D盘下多余的文件夹及里面的内容呢?

[ Last edited by willsort on 2006-5-11 at 17:21 ]
2 发表于 2006-05-06 23:36 ·  加拿大 Bell
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
UID 9
状态 离线
这个帖子应发在 DOS批處理 & 腳本技術(批處理室) 版块中,故现将其转过来。
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

3 发表于 2006-05-07 11:50 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
UID 50550
状态 离线
首先,用dir /ad /b 将目录名提取出来,然后利用findstr /v把不删除的目录过滤,最后用for对列表进行遍历操作。

@echo off
for /f "tokens=*" %%i in {'"dir d: /ad /b | findstr /i /v "Lgames Ngames 游戏菜单""') do rd /s /q "%%i"

注意:
1.在findstr的查找字符串中若包含中文字符,需要加上/i参数。
2.考虑到文件夹名中可能包含空格,所以for /f要指定tokens=*,以及rd命令调用%%i的时候要加上引号。
3.在将某命令的输出作为for的循环条件时,最好在括号内的单引号里面再加一对双引号,可以避免显视地进行字符转义以及可能出现的问题。
4 发表于 2006-05-07 17:15 ·  中国 上海 长宁区 电信
中级用户
★★
大师兄
积分 377
发帖 99
注册 2005-08-26 07:37
UID 41945
状态 离线
有一种特殊的情况,就是d:\下恰好有一个类似于"第二游戏菜单"的文件夹。
要是能处理这种情况就更完美了。
5 发表于 2006-05-07 17:31 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
UID 50550
状态 离线
RE tigerpower:
可以在调用findstr时加上/x参数,如果文件夹名指定错误就会误删掉不该删除的文件夹,如果用于以目录名来交互的脚本中,慎。
6 发表于 2006-05-09 20:39 ·  中国 北京 海淀区 北龙中网(北京)科技有限公司(BGP)
新手上路
积分 8
发帖 4
注册 2006-05-01 00:27
UID 54750
状态 离线
学习
好深奥的说
7 发表于 2006-05-09 21:12 ·  中国 上海 长宁区 电信
中级用户
★★
大师兄
积分 377
发帖 99
注册 2005-08-26 07:37
UID 41945
状态 离线
楼主要注意的是,原来三个文件夹名字必须没有空格才行。
8 发表于 2006-05-10 01:02 ·  中国 广西 河池 金城江区 电信
初级用户
积分 80
发帖 29
注册 2006-05-03 03:20
UID 54852
状态 离线
Originally posted by 3742668 at 2006-5-7 11:50:
首先,用dir /ad /b 将目录名提取出来,然后利用findstr /v把不删除的目录过滤,最后用for对列表进行遍历操作。

@echo off
for /f "tokens=*" %%i ...

在这里我想问一下,你如何分辨哪个文件该删哪个文件不该删。
9 发表于 2006-05-10 13:44 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
UID 50550
状态 离线
Re tigerpower:
可以好好看看findstr /?,并非不可实现。
我想这贴并非主要讨论findstr怎么过滤字符,楼主已经指明了3个文件夹的名称了,如果有兴趣就过滤字符的话题讨论的话请开个新贴。
Re kingljp:
分辨哪个文件该删哪个不该删用的是:dir d: /ad /b | findstr /i /v "Lgames Ngames 游戏菜单",由于楼主指定这三个文件夹不删除,所以只要在列表中删除这三个文件夹名就行了,剩下的都是该删的。
论坛跳转: