楼 主
大家帮忙完善一个批处理
发表于 2008-07-10 00:23 · 中国 广东 广州 电信
初级用户
★
积分 20
发帖 10
注册 2008-07-09 23:40
UID 121301
性别 男
状态 离线
用Dreamweaver做网页,但是Dreamweaver通常会在网站文件夹下自动创建名为“_notes”的文件夹,“_notes”文件夹下也会创建一些站点记录文件,比如:_notes.xml等;
我想做一个批理文件:“clean_notes.bat”,在做好网站后,把“clean_notes.bat”文件复制到网站文件夹里里运行一次,以达到把网站文件夹下所有子文件夹里的“_notes”的文件夹删除,并把所有子文件夹里的“_notes”里的文件夹里的所有文件也删除。
PS:我知道删除一个文件夹前,要先把这个文件里的文件删除(不知道是不是绝对是这样?)。
下面是我写到一半的,还不能实现我的要求,请高手指教:
clean_notes.bat
------------------------------
@echo off
echo 正在清除,请稍等......
del /f/s/q f:\mySite\*.*
rd /f/s/q f:\mySite\_notes
echo 清除完成!
echo. & pause
------------------------------
1、怎么判断只删除“_notes”目录下的所有文件而已?
2、这个脚本还要指定物理目录(f:\mySite\),想实现把“clean_notes.bat”复制到某一个目录后,就会在复制到的目录里开始工作,而不用指定目录(f:\mySite\),不知可不可以实现?
第 2 楼
发表于 2008-07-10 00:35 · 中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
@echo off
for /f "delims=" %%i in ('dir /s /ad /b f:\mysite') do echo %%i|findstr "_notes">nul&&rd /q /s "%%i"
echo 搞定&pause>nul
[
Last edited by zw19750516 on 2008-7-10 at 12:36 AM ]
批处理之家新域名:www.bathome.net
第 3 楼
发表于 2008-07-10 00:36 · 美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
不用先删文件再删文件夹,rd可以直接删文件夹和文件夹里面的文件。
rd没有/f开关
第 4 楼
发表于 2008-07-10 01:31 · 中国 广东 广州 电信
初级用户
★
积分 20
发帖 10
注册 2008-07-09 23:40
UID 121301
性别 男
状态 离线
Originally posted by zw19750516 at 2008-7-10 12:35 AM:
@echo off
for /f "delims=" %%i in ('dir /s /ad /b f:\mysite') do echo %%i|findstr "_notes">nul&&rd /q /s "%%i"
echo 搞定&pause>nul
是不是可以实现放这个批处理放到任何一下文件夹都可以啦?
能够注解一下让我这些菜鸟看明白就好了。
[ Last edited by sunshineus on 2008-7-10 at 01:32 AM ]
第 5 楼
发表于 2008-07-10 01:31 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
UID 73968
性别 男
状态 离线
放在哪个目录下就对哪个目录进行操作。包括子目录
@for /f "delims=" %%a in ('dir/b/s/ad "_notes"') do @rd /s/q "%%a"
[
Last edited by 26933062 on 2008-7-10 at 01:33 AM ]
致精致简!
第 6 楼
发表于 2008-07-10 01:34 · 美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
第 7 楼
发表于 2008-07-10 01:40 · 中国 广东 广州 电信
初级用户
★
积分 20
发帖 10
注册 2008-07-09 23:40
UID 121301
性别 男
状态 离线
Originally posted by HAT at 2008-7-10 01:34 AM:
哪一部分看不明白就问,自然有人解答^_^
@for /f "delims=" %%a in ('dir/b/s/ad "_notes"') do @rd /s/q "%%a"
1、@for 是什么意思?
2、/f 是不是强制删除只读文件?
3、delims 是什么命令?
4、%%a 是一个变量吗?
5、dir/b/s/ad 什么意思?
第 8 楼
发表于 2008-07-10 01:46 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
UID 73968
性别 男
状态 离线
@ 是不在cmd窗口显示运行的命令语句
for 是命令
/f 是for 的参数
delims 应该也算是 for 的参数吧,不知道怎么说,反正是给for命令指定条件用的。
dir 是什么不用我说了吧?
/b /s /ad 都是dir的参数
具体的看命令帮助吧。 运行 dir /?
朋友,你是第一天接触批处理吧?恕我直言,你这样问是难得学会的,还是自己看帮助,从基础学起吧!
致精致简!
第 9 楼
发表于 2008-07-10 01:53 · 中国 广东 广州 电信
初级用户
★
积分 20
发帖 10
注册 2008-07-09 23:40
UID 121301
性别 男
状态 离线
Originally posted by 26933062 at 2008-7-10 01:46 AM:
朋友,你是第一天接触批处理吧?恕我直言,你这样问是难得学会的,还是自己看帮助,从基础学起吧!
是呀,这几天才刚刚看到批处理的东西,觉得挺有用的,也没什么基础,我也不是学计算机也不是学程序的,只是有点爱好。
上网百度一些批得理的教程也只是很零碎的,有什么教程介绍一下吗?
第 10 楼
发表于 2008-07-10 03:41 · 美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
第 11 楼
发表于 2008-07-10 08:17 · 中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
Originally posted by 26933062 at 2008-7-10 01:31:
放在哪个目录下就对哪个目录进行操作。包括子目录
@for /f "delims=" %%a in ('dir/b/s/ad "_notes"') do @rd /s/q "%%a"
[ Last ...
兄弟这样是不是会将其它目录下的_notes文件夹也删除掉的啊,因为我们从楼主的描述中是不能肯定所有的_notes文件夹都是没用的。
批处理之家新域名:www.bathome.net
第 12 楼
发表于 2008-07-10 10:24 · 中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
UID 119451
性别 男
状态 离线
2、这个脚本还要指定物理目录(f:\mySite\),想实现把“clean_notes.bat”复制到某一个目录后,就会在复制到的目录里开始工作,而不用指定目录(f:\mySite\),不知可不可以实现?
你可以把“clean_notes.bat”放到"_notes"同一目录,然后建立“clean_notes.bat”的快捷方式,再把此快捷方式复制到你方便操作的目录即可
第 13 楼
发表于 2008-07-10 11:56 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
UID 73968
性别 男
状态 离线
Originally posted by zw19750516 at 2008-7-10 08:17:
兄弟这样是不是会将其它目录下的_notes文件夹也删除掉的啊,因为我们从楼主的描述中是不能肯定所有的_notes文件夹都是没用的。
删除批处理所在目录及子文件夹里的所以_notes文件夹,这难道不是楼主的意图?
致精致简!
第 14 楼
发表于 2008-07-10 12:01 · 中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
Originally posted by 26933062 at 2008-7-10 11:56:
删除批处理所在目录及子文件夹里的所以_notes文件夹,这难道不是楼主的意图?
这个脚本还要指定物理目录(f:\mySite\),想实现把“clean_notes.bat”复制到某一个目录后,就会在复制到的目录里开始工作,而不用指定目录(f:\mySite\),不知可不可以实现?
批处理之家新域名:www.bathome.net
第 15 楼
发表于 2008-07-10 12:05 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
UID 73968
性别 男
状态 离线
论坛跳转: