Board logo

标题: [文件操作] 请问怎么删除多个文件夹里指定的相同文件夹名里面的所有文件 [打印本页]

作者: love303929545    时间: 2018-3-26 11:58     标题: 请问怎么删除多个文件夹里指定的相同文件夹名里面的所有文件

本帖最后由 pcl_test 于 2018-4-2 10:10 编辑

现在有以下路径
C:\Users\Administrator\Documents\1\233\Video
C:\Users\Administrator\Documents\1\233\mpg
C:\Users\Administrator\Documents\1\233\acc
C:\Users\Administrator\Documents\1\234\Video
C:\Users\Administrator\Documents\1\234\mpg
C:\Users\Administrator\Documents\1\234\acc
C:\Users\Administrator\Documents\1\235\Video
C:\Users\Administrator\Documents\1\235\mpg
C:\Users\Administrator\Documents\1\235\acc
C:\Users\Administrator\Documents\1\236\Video
C:\Users\Administrator\Documents\1\236\mpg
C:\Users\Administrator\Documents\1\236\acc
C:\Users\Administrator\Documents\1\n\Video
C:\Users\Administrator\Documents\1\n\mpg
C:\Users\Administrator\Documents\1\n\acc
意思说不只是有233 234 235 236还有237 238 239等等一直N个都是有video和mgp和acc文件夹,或者说233  234  235等等文件夹名字都不一样。但是里面都有一个video和其他mpg等文件夹,现在只且仅仅要删除所有文件夹里面的video的所有文件,而mpg和其他无关文件保留,请问这个bat要怎么写额。。。不要用把保留文件移动出在移动进来的命令,文件太多了的话很费时间、
作者: yhcfsr    时间: 2018-3-26 14:51

本帖最后由 yhcfsr 于 2018-3-26 17:54 编辑

放在文件夹1中执行
务必备份源数据
  1. @ECHO OFF&setlocal enabledelayedexpansion
  2. set "SrcDir=C:\Users\Administrator\Documents\1"
  3. cd /d "%SrcDir%"
  4. if errorlevel 1 (
  5.     echo 指定目录不存在
  6. ) else (
  7.     for /f "delims=" %%a in ('dir /ad/s/b^|findstr /i /r "\\video$"') do rd /s /q "%%a"&&md "%%a"
  8. )
复制代码

作者: zaqmlp    时间: 2018-3-26 15:04

回复 2# yhcfsr

又是这样,你这findstr没有严谨区分,会误杀的
作者: yhcfsr    时间: 2018-3-26 15:13

回复 3# zaqmlp


    无妨,题主提供的路径名中,上级目录中并无video,怎么会误杀?
作者: zaqmlp    时间: 2018-3-26 15:47

回复 4# yhcfsr

你怎么知道他给出的就是全部,就是实际路径?findstr "\\video$"和if不是更好
作者: love303929545    时间: 2018-3-26 15:56

回复 2# yhcfsr


    多谢大佬,请问想随便放哪儿都可以删除这个指定的video有办法实现吗?或者放桌面也行
作者: love303929545    时间: 2018-3-26 15:57

回复 5# zaqmlp


    大佬请问想把bat放在桌面或者随意放在其他地方要怎么弄呢?最少放桌面实现删除video这个文件夹。可以的话能教下吗?
作者: yhcfsr    时间: 2018-3-26 16:14

回复 6# love303929545


    已改,看2楼
作者: love303929545    时间: 2018-3-26 16:31

回复 8# yhcfsr


    谢谢,尴尬,。。。能再问下吗 ,能不能保存video文件夹而把video里面的所有文件删除的呢?这个能实现吗?
作者: Batcher    时间: 2018-3-26 17:20

回复 2# yhcfsr


cd之后判断一下比较安全,否则有误删文件的风险。
  1. @echo off
  2. cd /d "C:\Users\Administrator\Documents\1"
  3. if errorlevel 1 (
  4.     echo 指定目录不存在
  5. ) else (
  6.     echo 删除文件的for命令放在这里
  7. )
复制代码

作者: yhcfsr    时间: 2018-3-26 17:57

回复 10# Batcher


    感谢5楼和10楼楼主的指正,del和RD是两个非常危险的命令,综合两位的意见,我又修改了2楼代码。
作者: /zhqsystem/zhq    时间: 2018-3-26 20:30

for /f "delims=" %%i in ('dir/ad/s/b ".\Video*"')do if /i "%%~nxi"=="Video" if exist "%%~dpimpg\" if exist "%%~dpiacc\" del/s/q "%%~fi\*.*"
作者: love303929545    时间: 2018-3-27 08:46

回复 2# yhcfsr


    请问大佬,我把路径换成了微信数据存储路径,然后微信登录的时候是只删除了video文件夹,但是我把微信都退出之后,直接把整个微信数据目录WeChat Files全部删除了,这个要怎么改呢?微信数据储存目录路径是C:\Users\Administrator\Documents\WeChat Files,然后下面是每个微信号的名字文件夹,每个微信号文件夹有video和其他文件夹,聊天记录等。
作者: yhcfsr    时间: 2018-3-27 09:36

本帖最后由 yhcfsr 于 2018-3-27 09:38 编辑

把你改的代码放出来,可以的话把目录树(图或文件均可)也放出来。
按你的描述,我还原你的操作:登陆微信,运行BAT,删除video,bat退出。退出微信,运行BAT,意外删除整个目录。不知是否正确?
细节的地方,可以加我好友33892006。
作者: love303929545    时间: 2018-3-30 08:40

回复 14# yhcfsr


    多谢大佬,已经可以了,是我没弄好。因为是加了新的删除文件夹,没有分段,所以才删除了整个目录。分段就好了。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2