[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] BAT 或 第三方工具:如何将文本按大小排序,并复制或删除指定的文本

本帖最后由 思想之翼 于 2024-12-21 17:09 编辑

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 于 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")
复制代码
1

评分人数

TOP

返回列表