首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在cmd的帮助下,我需要在我的硬盘驱动器"c:“上显示有序的文件列表。我们应该按大小订购文件。

在cmd的帮助下,我需要在我的硬盘驱动器"c:“上显示有序的文件列表。我们应该按大小订购文件。
EN

Stack Overflow用户
提问于 2022-10-13 09:30:00
回答 1查看 26关注 0票数 -1

我需要在我的硬盘驱动器"c:“上显示有序的文件列表。我们应该大小订购文件。当我这么做的时候,我就有麻烦了。每个目录都是分组的。例如,我的硬盘上有两个目录: 1-st- "55“,它有一些文件。第二-“66”和那个目录也有一些文件和3个文件。当我试图显示下一个文件的有序列表时:首先从硬盘"\c“中释放所有3个文件,然后显示目录"55”中的文件,然后在旁边显示目录"66“中的文件。如何显示所有文件,并按大小排序,而不按目录对其进行浏览。我使用命令dir /a-d /s /o-s /b

EN

回答 1

Stack Overflow用户

发布于 2022-10-15 09:40:16

正如穆菲已经提到的那样,dir并不是为了做到这一点而建的。您必须构建文件及其大小的列表(“数组”),然后按大小进行排序。我不确定您是否也需要简单排序的文件列表或它们的大小,所以请根据您的需要调整echo语句。您可以使用sort参数/r简单地反转排序顺序。

代码语言:javascript
复制
@echo off
setlocal enabledelayedexpansion 
set cnt=10000
for /r %%a in (*) do (
  set /a cnt+=1
  set "siz=          %%~za"
  set "file[!cnt!]=!siz:~-10! %%~fa"
)
REM for debug:   set file[
for /f "tokens=2,* delims= " %%a in ('set file[ ^| sort /+15') do (
  echo %%a - %%b
)

set file[列出了所有变量(我从10000开始,以便使变量名与sort /+15正常工作的长度相同--如果您可能有89998多个文件,那么就进行调整),

sort不能处理自然数,它严格地根据ASCII值进行排序,因此我们必须用空格或零来增加长度,并使它们都达到相同的长度,使sort能够“正常”工作(即a到“人工标准”)。

sort /+15从每一行的第15个字符开始排序,因此忽略变量名--如果更改10000file[...]变量名,则相应地调整10000

如果文件大小可能在千兆字节范围内,还可以增加空格(当前为10)和10:~-10中的数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74053486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档