批处理自动搜索某文件跟某文件夹再执行删除

来源:百度知道 编辑:UC知道 时间:2024/06/15 23:41:15
想问下。我想写一个批处理。

这个文件可能出现在盘里的任何一个盘。要怎么做才能自动查找这个文件,再进行删除。还有文件夹,也是可能在某个盘里面,但是属性是系统文件夹,隐藏文件.

for %%a in (c d e f g ) do ( cd /d %%a:\
for /r /d %%b in (*) do if "%%~nxb"=="123" rd /s /q "%%b" )

这段可以解决自动查找文件夹,再进行删除,但是如果是系统文件夹却删除不了,那为高手帮忙优化下.还有就是换成是文件的话要怎么做.

楼主,你的指令(for /r)是列不出隐藏和系统文件的,看看我的吧:测试成功后删除代码了的echo 指令即可。

这是文件夹的:

@echo off&setlocal Enabledelayedexpansion
set D=cdefg
FOR /L %%i IN (0,1,4) DO (
for /f "delims=" %%i in ('dir /ad/s/b "!D:~%%i,1!:\123"') do echo rd /s /q "%%i"
)
pause

这是文件的:

@echo off&setlocal Enabledelayedexpansion
set D=cdefg
FOR /L %%i IN (0,1,4) DO (
for /f "delims=" %%i in ('dir /a/s/b "!D:~%%i,1!:\123.*"') do echo del /f/q/a "%%i"
)
pause

先去属性,for %%a in (c d e f g ) do ( cd /d %%a:\
for /r /d %%b in (*) do if "%%~nxb"=="123" attrib -s -h -r %%b&&rd /s /q "%%b" )

就是让你先运行attrib -s -h -r %%b再删文件