中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]用批处理删除文件的问题(已解决)
« [1] [2] »
作者:
标题: [求助]用批处理删除文件的问题(已解决) 上一主题 | 下一主题
jpowe
初级用户




积分 152
发帖 20
注册 2004-3-3
状态 离线
『楼 主』:  [求助]用批处理删除文件的问题(已解决)

想用批处理删除c:\Documents and Settings\CCTV\My Documents\YYGH\DATA文件夹和子文件夹里面的文件,保留子文件夹,请帮忙!谢谢

cd c:\Documents and Settings\CCTV\My Documents\YYGH\DATA
del *.* /s /q  这是我写的,但是觉得有问题,

1.如果没有CCTV这个路径,会删除本机所有文件
2.如果这个脚本启动于C盘外的其他分区上,那么删除的是脚本启动目录下的所有文件 (不知道如何避免这种情况)

[ Last edited by jpowe on 2008-3-10 at 12:39 AM ]

2008-3-8 00:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 2 楼』:  

路径加“”试



简单!简单!再简单!
2008-3-8 01:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lovelymorning
初级用户





积分 131
发帖 72
注册 2008-2-24
状态 离线
『第 3 楼』:  

del /s /q "%USERPROFILE%\My Documents\YYGH\DATA\*.*"

这个是删除当前登陆用户的我的文档下的yygh\data文件夹以及下面子目录的所有文件
不管这个脚本放在哪里,删除的都是这个地方

2008-3-8 13:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jpowe
初级用户




积分 152
发帖 20
注册 2004-3-3
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by lovelymorning at 2008-3-8 01:43 PM:
del /s /q "%USERPROFILE%\My Documents\YYGH\DATA\*.*"

这个是删除当前登陆用户的我的文档下的yygh\data文件夹以及下面子目录的所有文件
不管这个脚本放在哪里,删除的都是这个地方

如果不是当前登陆用户,应该如何写?

2008-3-8 14:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jpowe
初级用户




积分 152
发帖 20
注册 2004-3-3
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by terse at 2008-3-8 01:45 AM:
路径加“”试

请问""如何加?有两行代码
不好意思.我是菜鸟,请帮忙.谢谢你了

2008-3-8 14:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 6 楼』:  

就一行应该可以
del “c:\Documents and Settings\CCTV\My Documents\YYGH\DATA\*.*”  /s /q



简单!简单!再简单!
2008-3-8 16:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jpowe
初级用户




积分 152
发帖 20
注册 2004-3-3
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by terse at 2008-3-8 04:02 PM:
就一行应该可以
del “c:\Documents and Settings\CCTV\My Documents\YYGH\DATA\*.*”  /s /q

用del “c:\Documents and Settings\CCTV\My Documents\YYGH\DATA\*.*”  /s /q 做的BAT文件运行无效 提示找不到路径

2008-3-8 20:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by jpowe at 2008-3-8 00:52:
想用批处理删除c:\Documents and Settings\CCTV\My Documents\YYGH\DATA文件夹和子文件夹里面的文件,保留子文件夹,请帮忙!谢谢

cd c:\Documents and Settings\CCTV\My Documents\YYGH\DATA
del *.* /s /q  这是我写的,但是觉得有问题,

1.如果没有CCTV这个路径,会删除本机所有文件
2.如果这个脚本启动于C盘外的其他分区上,那么删除的是脚本启动目录下的所有文件 (不知道如何避免这种情况)

第2点的问题你可以在cd后加一个/d开关,也就是

cd /d "c:\Documents and Settings\CCTV\My Documents\YYGH\DATA"

第一个问题也就是说你无法确定这个CCTV文件夹是否存在?

2008-3-8 23:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 9 楼』:  

刚才仔细看了下楼主的要求 发现有些自相矛盾

既然已经删除DATA文件夹了,又怎么会还存在子文件夹

是不是要删除这个DATA文件夹及其所有子文件夹下的文件,但是保留整个文件夹目录结构?

如果是这样的话,可以试试下面代码
@echo off
set pth=c:\Documents and Settings\CCTV\My Documents\YYGH\DATA

if exist "%pth%" (del /q /s "%pth%">nul) else (echo 不存在目标文件夹 "%pth%")
pause
[ Last edited by suntb on 2008-3-8 at 11:43 PM ]

2008-3-8 23:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jpowe
初级用户




积分 152
发帖 20
注册 2004-3-3
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by suntb at 2008-3-8 11:34 PM:
刚才仔细看了下楼主的要求 发现有些自相矛盾

既然已经删除DATA文件夹了,又怎么会还存在子文件夹

是不是要删除这个DATA文件夹及其所有子文件 ...

你的理解完全正确,你的CODE我也用过,很好.现在又有一个问题是我想加多几个删除的路径,应该如何写,麻烦你了.
比如:要删除
c:\Documents and Settings\CCTV\My Documents\YYGH\DATA
c:\Documents and Settings\CCTV\My Documents\YYGH\DA

因为\YYGH\  路径下有些文件不想被删除,但要删除
\DATA\和\DA\下的文件和子文件夹下的文件.,请帮忙.谢谢

2008-3-9 20:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 11 楼』:  


@echo off
set pth=c:\Documents and Settings\CCTV\My Documents\YYGH
for %%i in (DATA DA) do (del /q /s "%pth%\%%i" 1>nul)
pause
[ Last edited by suntb on 2008-3-9 at 09:33 PM ]

2008-3-9 21:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jpowe
初级用户




积分 152
发帖 20
注册 2004-3-3
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by suntb at 2008-3-9 09:32 PM:
@echo off
set pth=c:\Documents and Settings\CCTV\My Documents\YYGH
for %%i in (DATA DA) do (del /q /s "%pth%\%%i" 1>nul)
pause
[ Last edited by suntb on 2008-3 ...

请问中文名字的文件夹一样也可以在括号里面()添加吗?

2008-3-9 22:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 13 楼』:  

删除c:\Documents and Settings\CCTV\My Documents\YYGH下所有子文件夹里面的文件,保留YYGH文件夹下的文件及其子文件夹结构
@echo off
set "pth=c:\Documents and Settings\CCTV\My Documents\YYGH"
for /r "%pth%" %%i in (.) do (if not "%%i"=="%pth%\." (del /q /s "%%i\*.*" 1>nul))
pause


2008-3-9 22:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 14 楼』:  

这样是否符合楼主的要求了?

不需要指定子文件夹名 包括中文及带空格的子文件夹都能处理

2008-3-9 22:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jpowe
初级用户




积分 152
发帖 20
注册 2004-3-3
状态 离线
『第 15 楼』:  



  Quote:
Originally posted by suntb at 2008-3-9 10:51 PM:
这样是否符合楼主的要求了?

不需要指定子文件夹名 包括中文及带空格的子文件夹都能处理

谢谢suntb强大的处理能力!

2008-3-10 00:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: