标题: [求助]用批处理删除文件的问题(已解决)
[打印本页]
作者: jpowe
时间: 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盘外的其他分区上,那么删除的是脚本启动目录下的所有文件 (不知道如何避免这种情况)
Last edited by jpowe on 2008-3-10 at 12:39 AM ]
作者: terse
时间: 2008-3-8 01:45
路径加“”试
作者: lovelymorning
时间: 2008-3-8 13:43
del /s /q "%USERPROFILE%\My Documents\YYGH\DATA\*.*"
这个是删除当前登陆用户的我的文档下的yygh\data文件夹以及下面子目录的所有文件
不管这个脚本放在哪里,删除的都是这个地方
作者: jpowe
时间: 2008-3-8 14:09
Originally posted by lovelymorning at 2008-3-8 01:43 PM:
del /s /q "%USERPROFILE%\My Documents\YYGH\DATA\*.*"
这个是删除当前登陆用户的我的文档下的yygh\data文件夹以及下面子目录的所有文件
不管这个脚本放在哪里,删除的都是这个地方
如果不是当前登陆用户,应该如何写?
作者: jpowe
时间: 2008-3-8 14:10
Originally posted by terse at 2008-3-8 01:45 AM:
路径加“”试
请问""如何加?有两行代码
不好意思.我是菜鸟,请帮忙.谢谢你了
作者: terse
时间: 2008-3-8 16:02
就一行应该可以
del “c:\Documents and Settings\CCTV\My Documents\YYGH\DATA\*.*” /s /q
作者: jpowe
时间: 2008-3-8 20:54
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文件运行无效 提示找不到路径
作者: suntb
时间: 2008-3-8 23:26
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文件夹是否存在?
作者: suntb
时间: 2008-3-8 23:34
刚才仔细看了下楼主的要求 发现有些自相矛盾
既然已经删除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 ]
作者: jpowe
时间: 2008-3-9 20:46
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\下的文件和子文件夹下的文件.,请帮忙.谢谢
作者: suntb
时间: 2008-3-9 21:32
@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 ]
作者: jpowe
时间: 2008-3-9 22:08
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 ...
请问中文名字的文件夹一样也可以在括号里面()添加吗?
作者: suntb
时间: 2008-3-9 22:50
删除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
作者: suntb
时间: 2008-3-9 22:51
这样是否符合楼主的要求了?
不需要指定子文件夹名 包括中文及带空格的子文件夹都能处理
作者: jpowe
时间: 2008-3-10 00:38
Originally posted by suntb at 2008-3-9 10:51 PM:
这样是否符合楼主的要求了?
不需要指定子文件夹名 包括中文及带空格的子文件夹都能处理
谢谢
suntb强大的处理能力!
作者: ftl491875892
时间: 2010-11-7 20:42
想拜suntb为师 不知收徒弟不~