标题: [文件操作] [已解决]批处理如何全盘查找文件并将其删除? [打印本页]
作者: dnvplj 时间: 2015-5-3 10:59 标题: [已解决]批处理如何全盘查找文件并将其删除?
请问各位朋友,我的问题是:全盘(包括U盘)查找Soft.exe文件,并将他删除,那个文件夹不确定,两级目录就可以。
作者: pcl_test 时间: 2015-5-3 12:48
本帖最后由 pcl_test 于 2015-5-3 13:07 编辑
- @echo off
- 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 (
- if exist %%a:\ (
- ::删除“盘符:\一级文件夹\二级文件夹”里的指定文件
- for /d %%b in (%%a:\*) do for /d %%c in ("%%b\*") do del "%%c\Soft.exe" /f /q 2>nul
- ::如果是删除“盘符:\一级文件夹”里的指定文件,修改为for /d %%b in (%%a:\*) do del "%%b\Soft.exe" /f /q 2>nul
- )
- )
- pause
复制代码
- @echo off
- 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 (
- ::删除所有子目录里的指定文件
- if exist "%%a:\" del "%%a:\Soft.exe" /s /f /q 2>nul
- )
- pause
复制代码
作者: dizimotong 时间: 2015-5-3 12:52
- @echo off&setlocal EnableDelayedExpansion
- rem 删除全盘的soft.exe文件
-
- for /f "delims=," %%a in ('fsutil fsinfo drives') do (
- set str=%%a
- echo 开始删除!str!下的soft.exe
- echo =====================================
- call :rmfile !str!
- )
-
-
-
-
- :rmfile
- shift
- :loop
- if "%1"=="" goto end
- echo 开始删除%1下的soft.exe
- del /s /p %1soft.exe
- echo.
- shift
- goto loop
-
- :end
- exit
复制代码
这个批处理每次删除时都需确认一下,如果不想确认和看到信息,可以将其中的删除语句改为del /s /f %1soft.exe >null.不过还是建议删除时确认一下,比较好!!
作者: dnvplj 时间: 2015-5-3 13:34
回复 2# pcl_test
感谢回复,关建是soft.exe文件也可能是在盘符的根目录下,也可能在第一级或二级目录下,不确定,不要提示。
作者: 522235677 时间: 2015-5-3 14:15
- @echo off
- set file=soft.exe
- cd\
- for /f "skip=1" %%a in ('wmic logicaldisk get name') do (
- if not exist %%a goto end
- %%~da
- if exist %file% del /q %file%
- for /f "delims=" %%b in ('dir /b /ad 2^>nul') do (
- if exist "%%b\%file%" del /q "%%b\%file%"
- for /f "delims=" %%c in ('dir /b /ad %%b 2^>nul') do (
- if exist "%%b\%%c\%file%" del /q "%%b\%%c\%file%"
- )
- )
- )
- :end
- pause
复制代码
删除根目录,根目录的下级目录和再下级目录的指定文件
作者: pcl_test 时间: 2015-5-3 14:17
本帖最后由 pcl_test 于 2015-5-3 14:25 编辑
回复 4# dnvplj
就是考虑到你可能没有把问题说清楚,所以编了两段代码,第二段代码就可以实现你的要求,如果只是要删除根目录、一级文件夹和二级文件夹的指定文件那么- @echo off
- 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 (
- if exist %%a:\ (
- ::删除“盘符:\”里的指定文件
- del "%%a:\Soft.exe" /f /q 2>nul
- for /d %%b in (%%a:\*) do (
- ::删除“盘符:\一级文件夹”里的指定文件
- del "%%b\Soft.exe" /f /q 2>nul
- ::删除“盘符:\一级文件夹\二级文件夹”里的指定文件
- for /d %%c in ("%%b\*") do del "%%c\Soft.exe" /f /q 2>nul
- )
- )
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |