我现在有一个父文件夹birds,然后里面有200个子文件夹,每个子文件夹里面有60张图片,我需要删除前10张图片,其中的一个子文件夹图片名字如下图所示,怎么编写一个批处理脚本完成这个任务。如果我需要删除的是后10张图片,需要怎么修改代码呢,谢谢。
@echo off
mode con lines=3000
set #=q&set/ax=0x53b7e0b4
title Any question +%#%%#% %x%
cd /d "%~dp0"
>"%tmp%\$del.vbs" echo;CreateObject("Shell.Application").NameSpace(10).MoveHere WSH.Arguments(0):WSH.Quit
rem 如果文件名不等长,顺序会与资源管理器里所见有所出入
set "源目录=D:\birds"
for /f "delims=" %%a in ('dir /ad/b "%源目录%"') do (
echo;========^>"%源目录%\%%a"
rem 后10张则下面改为('dir /a-d/b "%源目录%\%%a"^|sort /+65535^|findstr /n .')
for /f "tokens=1* delims=:" %%b in ('dir /a-d/b "%源目录%\%%a"^|findstr /n .') do (
if %%b leq 10 (
echo;"%源目录%\%%a\%%c"
del /a /f /q "%源目录%\%%a\%%c"
rem cscript -nologo "%tmp%\$del.vbs" "%源目录%\%%a\%%c"
)
)
)
echo;Any question +%#%%#% %x%
pause
mode con lines=3000
set #=q&set/ax=0x53b7e0b4
title Any question +%#%%#% %x%
cd /d "%~dp0"
>"%tmp%\$del.vbs" echo;CreateObject("Shell.Application").NameSpace(10).MoveHere WSH.Arguments(0):WSH.Quit
rem 如果文件名不等长,顺序会与资源管理器里所见有所出入
set "源目录=D:\birds"
for /f "delims=" %%a in ('dir /ad/b "%源目录%"') do (
echo;========^>"%源目录%\%%a"
rem 后10张则下面改为('dir /a-d/b "%源目录%\%%a"^|sort /+65535^|findstr /n .')
for /f "tokens=1* delims=:" %%b in ('dir /a-d/b "%源目录%\%%a"^|findstr /n .') do (
if %%b leq 10 (
echo;"%源目录%\%%a\%%c"
del /a /f /q "%源目录%\%%a\%%c"
rem cscript -nologo "%tmp%\$del.vbs" "%源目录%\%%a\%%c"
)
)
)
echo;Any question +%#%%#% %x%
pause
温馨提示:答案为网友推荐,仅供参考