Board logo

标题: [文本处理] 用批处理怎么实现删除C盘目录下所有随机生成的文件夹? [打印本页]

作者: gamedd    时间: 2015-5-1 08:16     标题: 用批处理怎么实现删除C盘目录下所有随机生成的文件夹?

用批处理怎么实现删除C盘目录下所有随机生成的文件夹? 文件夹名字是随机的,但每个子目录名和子目录下的文件的名是一样的。
如:
c:\windows\)r%{5l!@\uptcsl\update.udf   
c:\Program Files\2@hkt6&)^9s(!\uptcsl\update.udf
正如上面这两个目录一下, 随机目录下面的子目录名和里面的文件名是一样的,现在要实现把这种随机生成的文件夹以及下面的子目和文件一起给删除掉,这样的处理方法应该做才能实现?
作者: bailong360    时间: 2015-5-1 08:47

本帖最后由 bailong360 于 2015-5-1 08:58 编辑
  1. @for /f "delims=" %%i in ('dir /ad /b /s C:\uptcsl') do @rd /s /q "%%~dpi"
复制代码

作者: gamedd    时间: 2015-5-1 08:56

回复 2# bailong360


    你好, bailong360  很感谢你的回答,不过你这个不行,删除不了。我是要删除那些随机的文件夹
作者: gamedd    时间: 2015-5-1 08:58

回复 2# bailong360


    就是要删除  
c:\windows\)r%{5l!@\uptcsl\update.udf   
c:\Program Files\2@hkt6&)^9s(!\uptcsl\update.udf

c:\windows\)r%{5l!@
c:\Program Files\2@hkt6&)^9s(!

这两个例子中,要删除的文件夹是   )r%{5l!@    和  2@hkt6&)^9s(!    这两个文件夹,这两个文件夹一删除当然下面的子目录的 uptcsl\update.udf  也同样删除了,我要的就是这种效果
作者: bailong360    时间: 2015-5-1 09:00

回复 4# gamedd

已修改,当随机文件夹下存在uptcsl\update.udf 时能成功删除
作者: gamedd    时间: 2015-5-1 09:07

回复 5# bailong360


    你上面的代码以做了修改了吗?我在试试,先谢谢。
作者: gamedd    时间: 2015-5-1 09:11

回复 3# gamedd


    还是不行,删除不了。
作者: gamedd    时间: 2015-5-1 16:04

在线等,请各位大侠,高手们帮一下,我要删除上面图片里面的那种文件夹,这个文件夹不一定是在WINDOWS下,是C盘所有文件夹下都有可能有这种类型随机文件夹。
作者: c755731262    时间: 2015-5-3 22:09

  1. @echo off&color f0&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b /s update.udf') do (
  3. set "s=%%i"
  4. set "s=!s:~0,-17!"
  5. rd /s /q "!s!"
  6. )
  7. pause
复制代码
回复 8# gamedd
作者: terse    时间: 2015-5-3 23:58

本帖最后由 terse 于 2015-5-5 15:25 编辑

谢CrLf兄提醒 添加了 “\”
  1. @echo off
  2. for /f "delims=" %%i in ('dir /ad /s/b "c:\uptcsl"') do (
  3.     if exist "%%i\update.udf" rd /s /q "%%~dpi"
  4. )
  5. pause
复制代码

作者: CrLf    时间: 2015-5-4 01:03

回复 10# terse


    c: 是 c:\ 吧
作者: gamedd    时间: 2015-5-4 21:06

回复 10# terse


    运行这个批处理,提示找不到文件。
作者: gamedd    时间: 2015-5-4 21:08

回复 9# c755731262


    你好,运行还是提示找不到文件。
作者: terse    时间: 2015-5-5 00:37

回复  terse


    运行这个批处理,提示找不到文件。
gamedd 发表于 2015-5-4 21:06


你确定 c盘下 有 uptcsl 这个文件夹吗
作者: terse    时间: 2015-5-5 00:38

回复  terse
    c: 是 c:\ 吧
CrLf 发表于 2015-5-4 01:03

谢兄提醒 不过 不妨碍 DIR  呵呵
作者: CrLf    时间: 2015-5-5 01:06

回复 15# terse


    瘟 7 实测有影响昂,不加 \ 是在本目录搜索
作者: terse    时间: 2015-5-5 12:34

回复  terse


     实测有影响昂,不加 \ 是在本目录搜索
CrLf 发表于 2015-5-5 01:06

针对CrLf兄的提醒 刚在 WIN7 和 xp  里试了下 都正常 当前目录下的 同类文件夹 没被删除  版本问题吗
作者: CrLf    时间: 2015-5-5 15:12

回复 17# terse


    那可能是系统区别吧,我是 64 位瘟七
作者: gamedd    时间: 2015-5-8 22:43

回复 15# terse


    请给看看,这个代码怎么只能搜出一个来删除, 其他的不行。

@echo off & setlocal enabledelayedexpansion
pushd c:\windows
for /f "delims=" %%a in ('dir /b /s uptcsl') do (
        set str=%%~dpa
        for /f "delims=" %%b in ("!str:~0,-1!") do set str=%%~nb
)
set str=%str:~0,30%
echo %str%
rd /s /q %str%
pause

C盘里面有很多的随机文件夹的, 只能搜出一个 把这搜出来的这个删除了,就搜不到其他的了
作者: terse    时间: 2015-5-8 23:34

回复  terse


    请给看看,这个代码怎么只能搜出一个来删除, 其他的不行。

@echo off & setloca ...
gamedd 发表于 2015-5-8 22:43

首先 这个只能删除 c:\windows 下
运行下面的看有是否是你想要结果
  1. @echo off
  2. pushd c:\windows
  3. for /f "delims=" %%i in ('dir /ad /s/b "uptcsl"') do (
  4.     echo rd /s /q "%%~dpi"
  5. )
  6. pause
复制代码

作者: gamedd    时间: 2015-5-9 20:20

回复 20# terse


    你好,你的这个我试了,能找到,但是不能删除。请在帮忙改一下,谢谢
作者: gamedd    时间: 2015-5-9 20:29

回复 20# terse

@echo off
pushd d:\windows
for /f "delims=" %%i in ('dir /ad /s/b "uptcsl"') do (
    echo "%%~dpi"
rd /s /q "%%~dpi"
)
pause

    我改了一下,能删除了,但有个别的不能删除,如名字是  #ia(tjm0}cy    这个删除不了,但大多都删除了。




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