想写个批处理,要删除多个文件夹(文件夹名是0-99999,中间并不是连续的,有缺省的可能)下所有的影音文件。请高手解答,谢谢了
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off
for /f %%i in ('dir /ad /b') do (
echo %%i| findstr "^*$">nul && echo %%i
)
pause
Originally posted by namejm at 2006-9-28 04:45:
试试下面的代码,可能会有用(代码为演示性质,如果觉得可靠,把后一个 echo %%i 改为 del /q %%i 即可):
@echo off
for /f %%i in ('dir /ad /b') do (
...
Originally posted by tide2046 at 2006-9-28 05:34:
昨天有人给我一个程序段,和这个差不多
但是,有点问题
这个会删除某个盘符下所有的数字命名的文件夹里的影音文件
现在上司给的指示是: ...
@echo off
setlocal enabledelayedexpansion
for /f %%i in ('dir /ad /b /s') do (
set route=%%i
set route_=!route:%cd%=!
set route_=!route_:\=!
echo !route_!|findstr "^*$">nul && (
for %%j in (avi wmv mpg mpeg rm rmvb mov divx mp3 wav wma swf) do (
if exist %%i\*.%%j del /a /f %%i\*.%%j
)
)
)
pause
at 2006-9-28 05:34:
这个会删除某个盘符下所有的数字命名的文件夹里的影音文件
现在上司给的指示是:只能是父目录为数字的文件夹里的影音文件和其子目录名同样为数字的文件夹里的影音文件才可以删
即:比如 D:/music/123/*.rm 这样的不能删
而:D:3213/321/*.rm 这样的需要删除
@echo off
::__快速删除当前目录下以纯数字命名的所有子目录中的指定文件.
::__测试前请将del /a /q "!route!\*.%%c" 1>nul 2>nul这一句去掉, 如果可行再执行删除!
set root=%cd%
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /ad /b /s') do (
set route=%%i
set route_=!route!:
set "route_=!route_:%root%=!"
set "route_=!route_:\=!"
call :go
)
echo 代码执行完毕^^!
pause
:go
set num=!route_:~0,1!
if not "!num!"==":" (
set term=
for %%a in (0 1 2 3 4 5 6 7 8 9) do (
if "!num!"=="%%a" (
set route_=!route_:~1!
set term=
goto go
)
)
if "!term!"=="" goto :eof
goto go
)
::__更多的影音类型请在下面FOR语句中按当前格式添加.
for %%c in (avi mp3 rm rmvb mp4 wmv wav swf) do (
if exist "!route!\*.%%c" (
echo 待操作的文件夹__!route!
del /a /q "!route!\*.%%c" 1>nul 2>nul
)
)
goto :eof