![目录列表按大小排序,但 opt*.* 位于顶部](https://linux22.com/image/1532391/%E7%9B%AE%E5%BD%95%E5%88%97%E8%A1%A8%E6%8C%89%E5%A4%A7%E5%B0%8F%E6%8E%92%E5%BA%8F%EF%BC%8C%E4%BD%86%20opt*.*%20%E4%BD%8D%E4%BA%8E%E9%A1%B6%E9%83%A8.png)
我希望按相反的大小顺序列出某个目录中的文件。
这很容易:使用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
进一步阅读
- Windows CMD 命令行的 AZ 索引
- Windows CMD 命令的分类列表
- 目录- 显示文件和子文件夹的列表。
- 查找字符串- 在文件中搜索字符串。