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

[文件操作] [已解决]批处理如何全盘查找文件并将其删除?

请问各位朋友,我的问题是:全盘(包括U盘)查找Soft.exe文件,并将他删除,那个文件夹不确定,两级目录就可以。

本帖最后由 pcl_test 于 2015-5-3 13:07 编辑
  1. @echo off
  2. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  3. if exist %%a:\ (
  4. ::删除“盘符:\一级文件夹\二级文件夹”里的指定文件
  5. for /d %%b in (%%a:\*) do for /d %%c in ("%%b\*") do del "%%c\Soft.exe" /f /q 2>nul
  6. ::如果是删除“盘符:\一级文件夹”里的指定文件,修改为for /d %%b in (%%a:\*) do del "%%b\Soft.exe" /f /q 2>nul
  7. )
  8. )
  9. pause
复制代码
  1. @echo off
  2. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  3. ::删除所有子目录里的指定文件
  4. if exist "%%a:\" del "%%a:\Soft.exe" /s /f /q 2>nul
  5. )
  6. pause
复制代码

TOP

  1. @echo off&setlocal EnableDelayedExpansion
  2. rem 删除全盘的soft.exe文件
  3. for /f "delims=," %%a in ('fsutil fsinfo drives') do (
  4. set str=%%a
  5. echo 开始删除!str!下的soft.exe
  6. echo =====================================
  7. call :rmfile !str!
  8. )
  9. :rmfile
  10. shift
  11. :loop
  12. if "%1"=="" goto end
  13. echo 开始删除%1下的soft.exe
  14. del /s /p %1soft.exe
  15. echo.
  16. shift
  17. goto loop
  18. :end
  19. exit
复制代码
这个批处理每次删除时都需确认一下,如果不想确认和看到信息,可以将其中的删除语句改为del /s /f %1soft.exe >null.不过还是建议删除时确认一下,比较好!!

TOP

回复 2# pcl_test
感谢回复,关建是soft.exe文件也可能是在盘符的根目录下,也可能在第一级或二级目录下,不确定,不要提示。

TOP

  1. @echo off
  2. set file=soft.exe
  3. cd\
  4. for /f "skip=1" %%a in ('wmic logicaldisk get name') do (
  5. if not exist %%a goto end
  6. %%~da
  7. if exist %file% del /q %file%
  8. for /f "delims=" %%b in ('dir /b /ad 2^>nul') do (
  9. if exist "%%b\%file%" del /q "%%b\%file%"
  10. for /f "delims=" %%c in ('dir /b /ad %%b 2^>nul') do (
  11. if exist "%%b\%%c\%file%" del /q "%%b\%%c\%file%"
  12. )
  13. )
  14. )
  15. :end
  16. pause
复制代码
删除根目录,根目录的下级目录和再下级目录的指定文件

TOP

本帖最后由 pcl_test 于 2015-5-3 14:25 编辑

回复 4# dnvplj
就是考虑到你可能没有把问题说清楚,所以编了两段代码,第二段代码就可以实现你的要求,如果只是要删除根目录、一级文件夹和二级文件夹的指定文件那么
  1. @echo off
  2. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  3. if exist %%a:\ (
  4. ::删除“盘符:\”里的指定文件
  5. del "%%a:\Soft.exe" /f /q 2>nul
  6. for /d %%b in (%%a:\*) do (
  7. ::删除“盘符:\一级文件夹”里的指定文件
  8. del "%%b\Soft.exe" /f /q 2>nul
  9. ::删除“盘符:\一级文件夹\二级文件夹”里的指定文件
  10. for /d %%c in ("%%b\*") do del "%%c\Soft.exe" /f /q 2>nul
  11. )
  12. )
  13. )
  14. pause
复制代码

TOP

返回列表