- 帖子
- 181
- 积分
- 206
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2021-5-22
|
回复 51# qixiaobin0715
回复 48# WHY
回复 41# Batcher
1,
非常感谢!
2,
{
@echo off
setlocal enabledelayedexpansion
REM 删除第1行,倒数第1行
for /f "skip=1 delims=" %%i in ('dir /b /a-d *.pdf') do (
if defined file echo;del "!file!"
set "file=%%i"
)
pause
}
这个解法巧妙,很是赞叹!
3,
{
@echo off
setlocal enabledelayedexpansion
REM 删除第1/3/5行,倒数第1/3/5行
for /f %%i in ('dir /b *.pdf ^| find /c /v ""') do (
set /a n=%%i+1, n1=n-1, n3=n-3, n5=n-5
)
for %%i in (1,3,5,!n1!,!n3!,!n5!) do set _%%i=1
for /f "delims=" %%i in ('dir /b *.pdf') do (
set /a i+=1
if not defined _!i! echo;del "%%i"
)
pause
}
其中,('dir /b *.pdf ^| find /c /v ""'),这招很怪,剑走偏锋。
4,
后两个for循环,有些繁琐,之前我就看到大神们爱写这样的代码,这显出后面既有解法的影子蛮深。
5,
set /a i+=1
前面已用了%%i,这里再设i+=1,易混淆,这是小瑕疵。
_%%i,_!i!,这些变量反复去设定,再用if去判断,实在是有点繁琐,我猜是可以再巧妙一点的。
|
|