中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 07:14
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]用批处理删除文件的问题(已解决) 查看 5,658 回复 15
楼 主 [求助]用批处理删除文件的问题(已解决) 发表于 2008-03-08 00:52 ·  中国 广东 广州 白云区 电信
初级用户
积分 152
发帖 20
注册 2004-03-03 00:00
22年会员
UID 19053
性别 男
状态 离线
想用批处理删除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 ]
2 发表于 2008-03-08 01:45 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
路径加“”试
简单!简单!再简单!
3 发表于 2008-03-08 13:43 ·  中国 广东 佛山 南海区 电信
初级用户
★★
积分 131
发帖 72
注册 2008-02-24 14:31
18年会员
UID 111317
性别 男
状态 离线
del /s /q "%USERPROFILE%\My Documents\YYGH\DATA\*.*"

这个是删除当前登陆用户的我的文档下的yygh\data文件夹以及下面子目录的所有文件
不管这个脚本放在哪里,删除的都是这个地方
4 发表于 2008-03-08 14:09 ·  中国 广东 广州 白云区 电信
初级用户
积分 152
发帖 20
注册 2004-03-03 00:00
22年会员
UID 19053
性别 男
状态 离线
Originally posted by lovelymorning at 2008-3-8 01:43 PM:
del /s /q "%USERPROFILE%\My Documents\YYGH\DATA\*.*"

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


如果不是当前登陆用户,应该如何写?
5 发表于 2008-03-08 14:10 ·  中国 广东 广州 白云区 电信
初级用户
积分 152
发帖 20
注册 2004-03-03 00:00
22年会员
UID 19053
性别 男
状态 离线
Originally posted by terse at 2008-3-8 01:45 AM:
路径加“”试

请问""如何加?有两行代码
不好意思.我是菜鸟,请帮忙.谢谢你了
6 发表于 2008-03-08 16:02 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
就一行应该可以
del “c:\Documents and Settings\CCTV\My Documents\YYGH\DATA\*.*” /s /q
简单!简单!再简单!
7 发表于 2008-03-08 20:54 ·  中国 广东 广州 白云区 电信
初级用户
积分 152
发帖 20
注册 2004-03-03 00:00
22年会员
UID 19053
性别 男
状态 离线
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文件运行无效 提示找不到路径
8 发表于 2008-03-08 23:26 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
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文件夹是否存在?
9 发表于 2008-03-08 23:34 ·  中国 福建 福州 连江县 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
刚才仔细看了下楼主的要求 发现有些自相矛盾

既然已经删除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 ]
10 发表于 2008-03-09 20:46 ·  中国 广东 广州 荔湾区 电信
初级用户
积分 152
发帖 20
注册 2004-03-03 00:00
22年会员
UID 19053
性别 男
状态 离线
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\下的文件和子文件夹下的文件.,请帮忙.谢谢
11 发表于 2008-03-09 21:32 ·  中国 福建 福州 连江县 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线

@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 ]
12 发表于 2008-03-09 22:08 ·  中国 广东 广州 荔湾区 电信
初级用户
积分 152
发帖 20
注册 2004-03-03 00:00
22年会员
UID 19053
性别 男
状态 离线
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 ...

请问中文名字的文件夹一样也可以在括号里面()添加吗?
13 发表于 2008-03-09 22:50 ·  中国 福建 福州 连江县 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
删除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
14 发表于 2008-03-09 22:51 ·  中国 福建 福州 连江县 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
这样是否符合楼主的要求了?

不需要指定子文件夹名 包括中文及带空格的子文件夹都能处理
15 发表于 2008-03-10 00:38 ·  中国 广东 广州 白云区 电信
初级用户
积分 152
发帖 20
注册 2004-03-03 00:00
22年会员
UID 19053
性别 男
状态 离线
Originally posted by suntb at 2008-3-9 10:51 PM:
这样是否符合楼主的要求了?

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

谢谢suntb强大的处理能力!
论坛跳转: