[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

回复 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    这个删除不了,但大多都删除了。

TOP

回复 20# terse


    你好,你的这个我试了,能找到,但是不能删除。请在帮忙改一下,谢谢

TOP

回复  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
复制代码

TOP

回复 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盘里面有很多的随机文件夹的, 只能搜出一个 把这搜出来的这个删除了,就搜不到其他的了

TOP

回复 17# terse


    那可能是系统区别吧,我是 64 位瘟七

TOP

回复  terse


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

针对CrLf兄的提醒 刚在 WIN7 和 xp  里试了下 都正常 当前目录下的 同类文件夹 没被删除  版本问题吗

TOP

回复 15# terse


    瘟 7 实测有影响昂,不加 \ 是在本目录搜索

TOP

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

谢兄提醒 不过 不妨碍 DIR  呵呵

TOP

回复  terse


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


你确定 c盘下 有 uptcsl 这个文件夹吗

TOP

回复 9# c755731262


    你好,运行还是提示找不到文件。

TOP

回复 10# terse


    运行这个批处理,提示找不到文件。

TOP

回复 10# terse


    c: 是 c:\ 吧

TOP

本帖最后由 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
复制代码

TOP

  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

TOP

返回列表