找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 195203|回复: 53

[文件操作] 求助批处理如何用for命令删掉除了最前,最后的其余文件?

[复制链接]
发表于 2022-5-27 09:51:58 | 显示全部楼层 |阅读模式
本帖最后由 smatenchen 于 2022-6-2 16:16 编辑



求助——如何用for命令删掉除了最前,或者最后的其余文件?


求助


各位大神:


假定d:\下有n个文件,如何用for命令删掉,


1
除了最前2个之外的其余的文件?


2
或者,除了最后2个之外的其余的文件?


在线等,感谢!

发表于 2022-5-27 10:42:11 | 显示全部楼层
回复 1# smatenchen


    最前、最后是按照什么排序的呢?文件名?修改时间?大小?
发表于 2022-5-27 10:51:59 | 显示全部楼层
如果是按文件名排序,而其中有涉及到数字序号,有时顺序可能与你所看到会有较大的差异。
 楼主| 发表于 2022-5-27 23:21:02 | 显示全部楼层
本帖最后由 smatenchen 于 2022-6-2 16:17 编辑

回复 2# Batcher


大神们好,


文件排序不是最重要的,都是会用到dir命令去显示排序结果。


鄙人最在意的是,如何保留了所需,而又剔除了其余……。


这是挺重要的操作,如,有一大堆记录文件,只需保留最前,或者最后几个,其余要删掉。


这要如何实现呢?是要多重用到set命令吗?


请大神们帮助!
 楼主| 发表于 2022-5-27 23:21:21 | 显示全部楼层
本帖最后由 smatenchen 于 2022-6-2 16:17 编辑

回复 3# qixiaobin0715


大神们好,


文件排序不是最重要的,都是会用到dir命令去显示排序结果。


鄙人最在意的是,如何保留了所需,而又剔除了其余……。


这是挺重要的操作,如,有一大堆记录文件,只需保留最前,或者最后几个,其余要删掉。


这要如何实现呢?是要多重用到set命令吗?


请大神们帮助!
 楼主| 发表于 2022-5-27 23:21:29 | 显示全部楼层
本帖最后由 smatenchen 于 2022-6-2 16:18 编辑

大神们好,

文件排序不是最重要的,都是会用到dir命令去显示排序结果。

鄙人最在意的是,如何保留了所需,而又剔除了其余……。

这是挺重要的操作,如,有一大堆记录文件,只需保留最前,或者最后几个,其余要删掉。

这要如何实现呢?是要多重用到set命令吗?

请大神们帮助!
发表于 2022-5-28 10:08:38 | 显示全部楼层
帖个图给大佬们看,他们才知道你的dir是什么样子的。
 楼主| 发表于 2022-5-28 22:56:34 | 显示全部楼层
本帖最后由 smatenchen 于 2022-6-2 16:18 编辑



没人会解法吗?
 楼主| 发表于 2022-5-29 10:05:07 | 显示全部楼层
本帖最后由 smatenchen 于 2022-6-2 16:18 编辑

回复 7# xczxczxcz


   一般的dir命令,如dir /b /a:-d这样的命令。
 楼主| 发表于 2022-5-29 11:51:55 | 显示全部楼层
本帖最后由 smatenchen 于 2022-6-2 16:18 编辑



1
先感谢大神出手相助。


2
的确,鄙人有没把需求说清楚的地方。
在一些地方,少说了或者两字,以致于把条件或,含混地说成了条件与。
是鄙人,说的不周圆。是鄙人的错。


3
大神批命令里的,
>1.log应不妥,该是>>1.log吧?
setlocal enabledelayedexpansion,没用到延迟,这句可不用吧?
(for /f,为何前面加个(呢?,这是要与>1.log配套使用的吗?
加了(,就等于>>1.log吗?就是将for命令的结果整个地输入给1.log吗?
这么多窍门吗?鄙人,又学几招了。哈哈!感谢!


4
非常感谢大神,给了提示。
sort命令也用上了,巧妙啊!谢谢!
鄙人之前忽略了skip参数,过去没理解透它。谢谢大神的提示。
鄙人,因而,有解法思路了。


5
看完大神的这个批命令,鄙人觉得,应该是会把所有txt文件删光吧?
这应该不能实现删掉除了最前2个,以及最后2个之外的其余文件吧?


6
假如,要删掉a.log文件里,除了最前2行,或最后2行外的其余行,这要如何实现呢?
有对文本内容编辑的命令吗?
假如,条件变一下,要删掉除了最前2行,及最后2行外的其余行,又该如何实现呢?
求帮助!谢谢!
发表于 2022-5-29 15:18:30 | 显示全部楼层
假定最前文件叫张三 最后文件叫李四
  1. @Echo off
  2. for /r %%i in (*)do if not "%%~nxi"=="%~nx0" if not "%%~nxi"=="张三.txt" if not "%%~nxi"=="李四.png" del/s/q "%%i"
  3. pause
复制代码
发表于 2022-5-29 15:39:09 | 显示全部楼层
假定按名称排列
  1. @Echo off&SetLocal EnableDelayedExpansion&set n=0
  2. for /r %%i in (*)do (
  3.         if not "%%~nxi"=="%~nx0" (set /a n+=1
  4.                 if "!n!"=="1" set L=%%i
  5.                 set J=%%i
  6.         )
  7. )
  8. for /r %%i in (*)do if not "%%~nxi"=="%~nx0" if not "%%i"=="!L!" if not "%%i"=="!J!" del/s/q "%%i"       
  9. pause
复制代码
发表于 2022-5-29 17:12:37 | 显示全部楼层
回复 2# Batcher


   论坛有点问题发不了新贴了,分类无论选什么点发新话题都提示:您没有输入标题或内容,请返回填写。
尝试过chrome和firefox都是。。
 楼主| 发表于 2022-5-29 17:37:38 | 显示全部楼层
回复 12# smss


   1
大神,
可以解释一下你的for命令里,各条语句的具体含义吗?
鄙人实在是看不太懂。
谢谢!
 楼主| 发表于 2022-5-29 17:40:31 | 显示全部楼层
回复 13# arwind


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 15:32 , Processed in 0.021932 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表