Board logo

标题: [文件操作] 批处理如何删除指定目录下的文件夹? [打印本页]

作者: 983921847    时间: 2013-1-8 10:33     标题: 批处理如何删除指定目录下的文件夹?

写一个可以删除这个文件bat      D:\Documents and Settings\liuyang03\Application Data\Thinstall\IDNMitigationAPIs     其中的     liuyang03     这个文件夹的名称可以变化,但是命名方式是“字母”/“字母+数字”的形式,哪位大侠帮我写一个bat,可以在liuyang03这个文件夹名称可以改变的情况下仍然可以删除这个文件夹,谢谢,在线等……
作者: BAT-VBS    时间: 2013-1-8 10:38

D:\Documents and Settings\liuyang03\Application Data\Thinstall\IDNMitigationAPIs下面只有一个文件夹吗?
作者: 983921847    时间: 2013-1-8 10:39

回复 2# BAT-VBS


    不是,肯定得用/s
下面还有文件夹和文件
作者: BAT-VBS    时间: 2013-1-8 10:41

回复 3# 983921847


我是问,如果liuyang04和liuyang05同时存在,怎么决定删哪个?
更/s没有一毛钱关系。
作者: 983921847    时间: 2013-1-8 10:43

回复 4# BAT-VBS


    奥,都删除
作者: BAT-VBS    时间: 2013-1-8 10:47

  1. @echo off
  2. rd /s /q "D:\Documents and Settings\liuyang03\Application Data\Thinstall\IDNMitigationAPIs"
  3. md "D:\Documents and Settings\liuyang03\Application Data\Thinstall\IDNMitigationAPIs"
复制代码

作者: 983921847    时间: 2013-1-8 10:50

回复 6# BAT-VBS


    谢谢,这个可以删除文件名是  liuyang03   这种情况下的文件,能不能改一下,当liuyang03变成其他文件名是也可以将这个文件删除,貌似可以使用类似于正则表达式样的东西替换liuyang03,谢谢您!
作者: 983921847    时间: 2013-1-8 10:51

回复 6# BAT-VBS


除了liuyang03文件夹名字可以变动外,其他的文件夹名字不会变动
作者: BAT-VBS    时间: 2013-1-8 10:53

回复 7# 983921847


    你能否给出一个针对6楼代码测试失败的案例?
作者: 983921847    时间: 2013-1-8 11:03

比如说:D:\Documents and Settings\liuyang03\Application Data\Thinstall\IDNMitigationAPIs
中的文件夹liuyang03   变成了   ligang01  
要删除的文件变成了  D:\Documents and Settings\ligang01\Application Data\Thinstall\IDNMitigationAPIs   这样就不能删除这个文件了
作者: 983921847    时间: 2013-1-8 11:03

回复 9# BAT-VBS


   
比如说:D:\Documents and Settings\liuyang03\Application Data\Thinstall\IDNMitigationAPIs
中的文件夹liuyang03   变成了   ligang01  
要删除的文件变成了  D:\Documents and Settings\ligang01\Application Data\Thinstall\IDNMitigationAPIs   这样就不能删除这个文件了
作者: BAT-VBS    时间: 2013-1-8 11:08

回复 11# 983921847


    D:\Documents and Settings\下面的文件夹有哪些?全部贴出来看看。或者说只有一个文件夹?
作者: 983921847    时间: 2013-1-8 11:37

回复 12# BAT-VBS


    卷 PersistentDataDisk 的文件夹 PATH 列表
卷序列号码为 00200064 7EC4:0494
D:.
├─1
├─All Users
│  ├─Documents
│  │  ├─My Music
│  │  │  ├─My Playlists
│  │  │  ├─Sample Playlists
│  │  │  │  └─000AB63F
│  │  │  ├─Sync Playlists
│  │  │  │  └─0007BFC3
│  │  │  └─示例音乐
│  │  ├─My Pictures
│  │  │  └─示例图片
│  │  └─My Videos
│  ├─Favorites
│  │  └─链接
│  ├─My Documents
│  │  ├─My Music
│  │  └─My Pictures
│  ├─「开始」菜单
│  │  └─程序
│  │      ├─Active Player
│  │      ├─AutoCAD 2004
│  │      ├─EMC Avamar
│  │      ├─Java Web Start
│  │      ├─Meridium APM Applications
│  │      ├─Microsoft Office
│  │      │  └─Microsoft Office 工具
│  │      ├─Microsoft Silverlight
│  │      ├─Microsoft SQL Server 6.5
│  │      ├─Oracle - OraClient10g_home1
│  │      │  ├─Application Development
│  │      │  ├─Configuration and Migration Tools
│  │      │  ├─Enterprise Management Packs
│  │      │  │  └─Change
│  │      │  ├─Integrated Management Tools
│  │      │  └─Oracle Installation Products
│  │      ├─SAP Front End
│  │      ├─SEP Reader
│  │      ├─TASS_CSP
│  │      ├─USB Token
│  │      │  └─USB Token 3000
│  │      ├─VMware
│  │      │  └─VMware Tools
│  │      ├─yg_reader
│  │      ├─启动
│  │      ├─好压软件
│  │      │  └─好压软件实用工具
│  │      ├─搜狗五笔输入法
│  │      ├─搜狗拼音输入法
│  │      │  └─链接
│  │      ├─数字档案馆
│  │      ├─方正德赛数据加工系统4.1 客户端
│  │      ├─清华同方知网
│  │      │  └─TPI45
│  │      │      ├─Mets服务
│  │      │      ├─OCR服务
│  │      │      ├─内容加工与发布
│  │      │      ├─客户端程序
│  │      │      ├─服务器
│  │      │      └─电子书加工
│  │      ├─游戏
│  │      ├─福昕阅读器
│  │      ├─管理工具
│  │      ├─超星阅读器
│  │      ├─金盘图书馆NET集成管理系统
│  │      └─附件
│  │          ├─娱乐
│  │          ├─系统工具
│  │          ├─辅助工具
│  │          └─通讯
│  └─桌面
├─Default User
│  ├─Favorites
│  │  └─链接
│  ├─My Documents
│  │  ├─My Music
│  │  └─My Pictures
│  ├─「开始」菜单
│  │  └─程序
│  │      ├─启动
│  │      └─附件
│  │          ├─娱乐
│  │          └─辅助工具
│  └─桌面
└─liuyang03
    ├─avscc_settings
    ├─Favorites
    │  └─链接
    ├─My Documents
    │  ├─My Music
    │  └─My Pictures
    ├─「开始」菜单
    │  └─程序
    │      ├─启动
    │      └─附件
    │          ├─娱乐
    │          └─辅助工具
    └─桌面
作者: 983921847    时间: 2013-1-8 11:43

回复 12# BAT-VBS


    文件夹下有隐藏的文件夹没有显示出来,目的是删除  IDNMitigationAPIs   这个文件夹,但是  文件夹  liuyang03这个文件夹得名字可以变化。
作者: terse    时间: 2013-1-8 11:51

不确定你真正要删除那一级文件夹 先ECHO
  1. @echo off
  2. set "ph=D:\Documents and Settings\"
  3. for /f "delims=" %%i in ('dir /ad /b "%ph%"^|Findstr /ir \\[a-z]*[0-9]*\\') do (
  4.     if exist "%%i\" echo rd /s /q "%%i\"
  5. )
  6. pause
复制代码

作者: 983921847    时间: 2013-1-8 12:22

回复 15# terse

您的代码我试了试,稍微有些小问题,不能把“IDNMitigationAPIs”文件夹删除,谢谢您!
作者: terse    时间: 2013-1-8 12:25

本帖最后由 terse 于 2013-1-8 12:42 编辑
回复  terse

您的代码我试了试,稍微有些小问题,不能把“IDNMitigationAPIs”文件夹删除,谢谢您!
983921847 发表于 2013-1-8 12:22

能否把ECHO 结果贴上来
还有去掉ECHO后 的提示是什么
对了 现在路径的不全  DIR  加 /S 后 可一试
不加/S的话 在路径前加%ph%
最后问一下 整个路径里是否就一个变量(字母加数字的文件夹)在里面
试这个笨办法看 (其他文件夹名不变的情况)
  1. @echo off
  2. set "ph=D:\Documents and Settings\"
  3. for /f "delims=" %%i in ('dir /ad /b "%ph%"^|Findstr /ier \\[a-z]*[0-9]*\\') do (
  4.     rd /s /q "%ph%\%%i\Application Data\Thinstall\IDNMitigationAPIs\"
  5. )
  6. pause
复制代码

作者: apang    时间: 2013-1-8 13:08

标题党,斑竹该修理
作者: BAT-VBS    时间: 2013-1-8 13:28

回复 14# 983921847
  1. @echo off
  2. for /f "delims=" %%a in ('dir /s /b /ad "D:\Documents and Settings\" ^| findstr "IDNMitigationAPIs"') do (
  3.     rd /s /q "%%a"
  4. )
复制代码

作者: 983921847    时间: 2013-1-8 13:28

回复 17# terse

您好,这是我运行您的bat之后的显示结果,我将echo放开了,谢谢,删除不了IDNMitigationAPIs文件夹。
   
C:\Documents and Settings\Administrator\桌面>set "ph=D:\Documents and Settings\"


C:\Documents and Settings\Administrator\桌面>for /F "delims=" %i in ('dir /ad /b
"D:\Documents and Settings\"|Findstr /ier \\[a-z]*[0-9]*\\') do (rd /s /q "D:\D
ocuments and Settings\\%i\Application Data\Thinstall\IDNMitigationAPIs\" )

C:\Documents and Settings\Administrator\桌面>pause
请按任意键继续. . .

我把rd /s /q "%ph%\%%i\Application Data\Thinstall\IDNMitigationAPIs\"改成rd /s /q "%ph%\%%i\Application Data\Thinstall\IDNMitigationAPIs"也不行
作者: 983921847    时间: 2013-1-8 13:31

回复 19# BAT-VBS


    您好,代码可以使用了,谢谢您!
作者: terse    时间: 2013-1-8 13:44

回复 20# 983921847

晕 以你回复可用代码 那为什么不直接 DIR IDNMitigationAPIs 文件夹 搞什么自摸数字组合 浪费我....
作者: BAT-VBS    时间: 2013-1-8 13:51

回复 21# 983921847


    问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
作者: 983921847    时间: 2013-1-8 14:04

回复 22# terse


    您不要误会,我的应用环境是这样的,在很多的电脑上运行这个bat,用户很小白,给他们刷到桌面上,他们需要时长运行这个文件
作者: 983921847    时间: 2013-1-8 14:09

回复 23# BAT-VBS


    您好,还有个问题,就是其中的某些文件被某一个程序占用,无法删除,能强制删除吗?谢谢
作者: BAT-VBS    时间: 2013-1-8 14:12

回复 25# 983921847


方法1:先杀进程,再删文件夹。
方法2:调用unlocker等支持命令行的强删工具。
作者: terse    时间: 2013-1-8 14:36

回复  terse


    您不要误会,我的应用环境是这样的,在很多的电脑上运行这个bat,用户很小白,给他们 ...
983921847 发表于 2013-1-8 14:04

我的意思是 既然确定文件夹名 是否可这样一试 dir /ad /s /b "D:\Documents and Settings\IDNMitigationAPIs"
方案并不通用
作者: 983921847    时间: 2013-1-8 14:57

回复 15# terse


    您好,我要删除IDNMitigationAPIs这个文件夹,谢谢您!
作者: terse    时间: 2013-1-8 15:12

回复  terse


    您好,我要删除IDNMitigationAPIs这个文件夹,谢谢您!
983921847 发表于 2013-1-8 14:57

对于你我之间的理解 无语了
因为知道了要删除IDNMitigationAPIs这个文件夹 所以才 dir /s......
到此为止 不讨论没意义的了 何况问题也解决了
作者: 983921847    时间: 2013-1-8 15:42

回复 29# terse


    这个回复是我回复错了地方了,不好意思,现在的问题是可以删除这个文件夹中的文件,但是有些文件是被程序占用的,请问,有没有合适的命令能够直接删除被程序占用的文件,谢谢!
作者: terse    时间: 2013-1-8 16:33

看有进程运行吗
也不知道杀得了不
  1. @ECHO OFF&setlocal enabledelayedexpansion
  2. set "str=IDNMitigationAPIs"
  3. set "wm=wmic process get executablepath"
  4. for /f "tokens=*" %%i in ('dir /ad /s /b "D:\Documents and Settings\%str%"') do (
  5.     for /f "delims=" %%j in ('%wm%^|findstr /i "\\%str%\\"') do (
  6.         For /f "tokens=*" %%k in ("%%j") do set "Eph=%%~nxk"
  7.         wmic process where name="!Eph!" delete >nul
  8.         rd /s /q "%%i\"
  9.     )
  10. )
  11. PAUSE
复制代码

作者: weiluz    时间: 2013-11-22 17:32

本帖最后由 weiluz 于 2013-11-22 17:34 编辑

楼上的,真心热心人士~~致敬!

另,如果有进程占用不能干掉进程的话可以使用系统自带的 内核调试工具命令ntsd,基本上可以强制结束所有进程。




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