目录列表按大小排序,但 opt*.* 位于顶部

目录列表按大小排序,但 opt*.* 位于顶部

我希望按相反的大小顺序列出某个目录中的文件。

这很容易:使用dir /o-s/b >dir.lis

但是我希望名为 opt*.* 的文件始终出现在顶部,无论文件大小。

不确定如何执行此操作。我可以通过两个步骤执行此操作,例如 dir /o-s opt*.* >dir.lis ,然后发出第二个命令来列出其余部分。

但是我如何从第二个列表中排除 opt*.*?

答案1

我如何opt*.*从第二个列表中排除?

您可以使用查找字符串为了达成这个:

dir /b /o-s *.* | findstr /bivr /c:"opt*.*"

在哪里:

  • /b如果位于行的开头,则匹配模式。

  • /i不区分大小写的搜索

  • /v仅打印不包含匹配项的行

  • /r使用字符串作为正则表达式

  • /c"string"使用字符串作为文字搜索字符串(可能包含空格)

因此,将以下两个命令放在一起就可以完成您想要的操作(opt*.*首先列出文件)

rem get opt*.* files
dir /b /o-s opt*.* > dir.lis
rem get the rest of the files excluding opt*.*
dir /b /o-s *.* | findstr /bivr /c:"opt*.*" >> dir.lis

进一步阅读

相关内容