Board logo

标题: [其他] 【已解决】BAT 或 第三方工具:如何将文本按大小排序,并复制或删除指定的文本 [打印本页]

作者: 思想之翼    时间: 4 天前 16:39     标题: 【已解决】BAT 或 第三方工具:如何将文本按大小排序,并复制或删除指定的文本

本帖最后由 思想之翼 于 2024-12-22 18:56 编辑

D:\DATA1\内有若干文本,鼠标操作步骤如下:
右键-排序方式(大小 递减)
1.从大到小,复制1-50个文本,粘贴到D:\DATA2\
2.从大到小,保留1-50个文本,D:\DATA1\内的其余文本删除
3.从小到大,复制1-50个文本,粘贴到D:\DATA2\
4.从小到大,保留1-50个文本,D:\DATA1\内的其余文本删除
5.复制大小为 1KB 的文本,粘贴到D:\DATA2\
6.保留大小为 1KB 的文本,D:\DATA1\内的其余文本删除

如何用BAT 或 第三方工具,分别实现上述6种结果?
作者: aloha20200628    时间: 4 天前 21:04

本帖最后由 aloha20200628 于 2024-12-21 21:15 编辑

回复 1# 思想之翼

先给出用 bat+sed 可直达6种结果的一行流代码...

结果-1
  1. @echo off &cd /d "d:\data1" &for /f "delims=" %%a in ('dir /b/o-s *.txt^|sed -n "1,50p" ') do copy /y "%%a" "d:\data2\"
复制代码
结果-2
  1. @echo off &cd /d "d:\data1" &for /f "delims=" %%a in ('dir /b/o-s *.txt^|sed -n "51,$p" ') do del /q "%%a"
复制代码
结果-3
  1. @echo off &cd /d "d:\data1" &for /f "delims=" %%a in ('dir /b/os *.txt^|sed -n "1,50p" ') do copy /y "%%a" "d:\data2\"
复制代码
结果-4
  1. @echo off &cd /d "d:\data1" &for /f "delims=" %%a in ('dir /b/os *.txt^|sed -n "51,$p" ') do del /q "%%a"
复制代码
结果-5
  1. @echo off &cd /d "d:\data1" &for /f "delims=" %%a in ('dir /b/os/-c *.txt') do if "%%~za" equ "1024" (copy /y "%%a" "d:\data2\")
复制代码
结果-6
  1. @echo off &cd /d "d:\data1" &for /f "delims=" %%a in ('dir /b/o-s/-c *.txt') do if "%%~za" neq "1024" (del /q "%%a")
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2