找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23669|回复: 4

[文件操作] bathome比赛题第一题

[复制链接]
发表于 2013-8-27 13:16:32 | 显示全部楼层 |阅读模式
本帖最后由 林小七 于 2013-8-27 13:33 编辑

好久没搞P处理了~突然发现有比赛题,就顺手写了个~觉得个人P处理不会再进步了~还是那个烂水平~
拿出来分享下~由于不活跃,等级低~~不能再别的版区发帖~顺便问下我这个好像没递归~~
不管了~反正xp下是删除了bathome~睡觉去了~~
  1. @echo off &&title  XSeven By Seven
  2. ::1、删除文件夹 D:\BatHome
  3. ::注意:
  4. ::(1)该文件夹下面包含文件和子文件夹
  5. ::(2)可以使用 rd 或 rmdir 命令,但是不允许使用它们的 /s 选项
  6. ::(3)需要在程序中模拟 rd /s 的递归删除功能
  7. ::                                                 By :Seven

  8. if not exist d:\bathome goto eofs
  9. rd d:\bathome
  10. if not %errorlevel% equ 0 goto dels else goto eofs
  11. :dels
  12. for /d /r "d:\bathome" %%s in (*) do @echo %%s>>file.temp
  13. for /f "delims=" %%a in ('sort /r^<file.temp') do (
  14.       del /f /s /q "%%a\*" 2>nul>>delfile.txt
  15.       rd "%%a" 2>nul>nul
  16.       )
  17. del /f /q /s d:\bathome\*  2>nul>nul
  18. rd d:\bathome>2nul>nul
  19. del /f /s /q file.temp>nul 2>nul
  20. :eofs
  21. @echo.删除完成&&pause>nul&&exit
复制代码
发表于 2013-8-27 20:08:56 | 显示全部楼层
本帖最后由 xpw 于 2013-8-27 20:13 编辑

  1. @echo off
  2. ::删除所有文件
  3. del /a /f /s /q D:\BatHome\*.* >nul
  4. ::删除所有子目录
  5. for /f "delims=" %%a in ('dir /ad /s /b D:\BatHome^|sort /r')do (
  6. attrib -s -h -r "%%a"&rd "%%a")
  7. ::删除父目录
  8. attrib -s -h -r D:\BatHome&rd D:\BatHome
  9. pause>nul
复制代码

感觉我的就一条命令一条命令拼接起来的样子
发表于 2013-8-27 20:37:40 | 显示全部楼层
  1. @ECHO OFF

  2. CALL :CLEARDIR D:\BatHome

  3. PAUSE
  4. EXIT /B

  5. ::-------------------------------------------------------------------------------
  6. :CLEARDIR
  7.         FOR /F %%a IN ('DIR %1 /AD /B') DO (
  8.                 ::判断目录下是否包含目录,包含子目录回调CLEARDIR
  9.                 DIR %1\%%a /AD /B|FIND /V "*">NUL&&CALL :CLEARDIR %1\%%a SUBDIR
  10.                 ECHO 删除目录文件:%1\%%a
  11.                 DEL %1\%%a /F/Q >NUL 2>NUL
  12.                 RD %1\%%a >NUL 2>NUL
  13.         )
  14.         ::由上层调用删除
  15.         IF DEFINED %%2 EXIT /B

  16.         ::删除自身目录
  17.         DEL %1 /Q >NUL 2>NUL
  18.         RD %1 >NUL 2>NUL
  19.        
  20.         EXIT /B
  21. :_CLEARDIR
复制代码
模拟递归
 楼主| 发表于 2013-8-28 07:53:03 | 显示全部楼层
回复 2# xpw

不让用dir的s参数
 楼主| 发表于 2013-8-28 08:00:59 | 显示全部楼层
回复 3# ADSL0125


    果然递归,,,,,膜拜,学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 13:19 , Processed in 0.017246 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表