标题: [求助]如何实现每次开机时删附D盘下多余的文件夹
[打印本页]
作者: enty2008
时间: 2006-5-6 17:42
标题: [求助]如何实现每次开机时删附D盘下多余的文件夹
本来D盘里在的有的文件夹:Lgames , Ngames,游戏菜单 这三个文件夹。如何用批处理实现每次开机时删附D盘下多余的文件夹及里面的内容呢?
[
Last edited by willsort on 2006-5-11 at 17:21 ]
作者: Wengier
时间: 2006-5-6 23:36
这个帖子应发在 DOS批處理 & 腳本技術(批處理室) 版块中,故现将其转过来。
作者: 3742668
时间: 2006-5-7 11:50
首先,用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的循环条件时,最好在括号内的单引号里面再加一对双引号,可以避免显视地进行字符转义以及可能出现的问题。
作者: tigerpower
时间: 2006-5-7 17:15
有一种特殊的情况,就是d:\下恰好有一个类似于"第二游戏菜单"的文件夹。
要是能处理这种情况就更完美了。
作者: 3742668
时间: 2006-5-7 17:31
RE tigerpower:
可以在调用findstr时加上/x参数,如果文件夹名指定错误就会误删掉不该删除的文件夹,如果用于以目录名来交互的脚本中,慎。
作者: dawnerlee
时间: 2006-5-9 20:39
学习
好深奥的说
作者: tigerpower
时间: 2006-5-9 21:12
楼主要注意的是,原来三个文件夹名字必须没有空格才行。
作者: kingljp
时间: 2006-5-10 01:02
Quote: |
Originally posted by 3742668 at 2006-5-7 11:50:
首先,用dir /ad /b 将目录名提取出来,然后利用findstr /v把不删除的目录过滤,最后用for对列表进行遍历操作。
[code]
@echo off
for /f "tokens=*" %%i ... |
|
在这里我想问一下,你如何分辨哪个文件该删哪个文件不该删。
作者: 3742668
时间: 2006-5-10 13:44
Re tigerpower:
可以好好看看findstr /?,并非不可实现。
我想这贴并非主要讨论findstr怎么过滤字符,楼主已经指明了3个文件夹的名称了,如果有兴趣就过滤字符的话题讨论的话请开个新贴。
Re kingljp:
分辨哪个文件该删哪个不该删用的是:dir d: /ad /b | findstr /i /v "Lgames Ngames 游戏菜单",由于楼主指定这三个文件夹不删除,所以只要在列表中删除这三个文件夹名就行了,剩下的都是该删的。