中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何实现每次开机时删附D盘下多余的文件夹
作者:
标题: [求助]如何实现每次开机时删附D盘下多余的文件夹 上一主题 | 下一主题
enty2008
新手上路





积分 6
发帖 1
注册 2006-5-6
状态 离线
『楼 主』:  [求助]如何实现每次开机时删附D盘下多余的文件夹

本来D盘里在的有的文件夹:Lgames , Ngames,游戏菜单 这三个文件夹。如何用批处理实现每次开机时删附D盘下多余的文件夹及里面的内容呢?

[ Last edited by willsort on 2006-5-11 at 17:21 ]

2006-5-6 17:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 2 楼』:  

这个帖子应发在 DOS批處理 & 腳本技術(批處理室) 版块中,故现将其转过来。



Wengier - 新DOS时代

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

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

2006-5-6 23:36
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 3 楼』:  

首先,用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的循环条件时,最好在括号内的单引号里面再加一对双引号,可以避免显视地进行字符转义以及可能出现的问题。

2006-5-7 11:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tigerpower
中级用户

大师兄


积分 377
发帖 99
注册 2005-8-26
状态 离线
『第 4 楼』:  

有一种特殊的情况,就是d:\下恰好有一个类似于"第二游戏菜单"的文件夹。
要是能处理这种情况就更完美了。

2006-5-7 17:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 5 楼』:  

RE tigerpower:
    可以在调用findstr时加上/x参数,如果文件夹名指定错误就会误删掉不该删除的文件夹,如果用于以目录名来交互的脚本中,慎。

2006-5-7 17:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dawnerlee
新手上路





积分 8
发帖 4
注册 2006-5-1
状态 离线
『第 6 楼』:  

学习
好深奥的说

2006-5-9 20:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tigerpower
中级用户

大师兄


积分 377
发帖 99
注册 2005-8-26
状态 离线
『第 7 楼』:  

楼主要注意的是,原来三个文件夹名字必须没有空格才行。

2006-5-9 21:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kingljp
初级用户





积分 80
发帖 29
注册 2006-5-3
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by 3742668 at 2006-5-7 11:50:
首先,用dir /ad /b 将目录名提取出来,然后利用findstr /v把不删除的目录过滤,最后用for对列表进行遍历操作。
[code]
@echo off
for /f "tokens=*" %%i  ...

在这里我想问一下,你如何分辨哪个文件该删哪个文件不该删。

2006-5-10 01:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 9 楼』:  

Re tigerpower:
可以好好看看findstr /?,并非不可实现。
我想这贴并非主要讨论findstr怎么过滤字符,楼主已经指明了3个文件夹的名称了,如果有兴趣就过滤字符的话题讨论的话请开个新贴。
Re kingljp:
分辨哪个文件该删哪个不该删用的是:dir d: /ad /b | findstr /i /v "Lgames Ngames 游戏菜单",由于楼主指定这三个文件夹不删除,所以只要在列表中删除这三个文件夹名就行了,剩下的都是该删的。

2006-5-10 13:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: