按类型对子文件夹中的所有文件进行排序

按类型对子文件夹中的所有文件进行排序

所以我有一个文件夹,其中有几个子文件夹包含照片和视频(主要但不完全是,.jpg分别.mp4)。

我想要该文件夹每个子文件夹中的所有文件,不是在 Windows 上无处不在,否则我可以通过改变排序标准来做到这一点),保持原样,但按类型分组排序(先按照片,然后按视频,即按类型而不是扩展名区分),按字母顺序排列。

例如,在文件夹中Ferrari我们得到了以下文件:

Monza1.mp4
Monza2.jpeg

Portofino in action.mp4
Portofino in action.jpg

Roma5.mkv
Roma6.jpeg

...
...

所有文件按名称字母顺序排序/默认

我希望它们按如下方式排序:

Monza2.jpeg
Portofino in action.jpg
Roma6.jpeg

照片被分组在一起,移到开头,然后按字母顺序排列。

Monza1.mp4
Roma5.mkv

视频以同样的方式播放。

这可能吗?

任何 cmd、bat 文件甚至第三方程序建议都可以。

答案1

因此,您可以使用以下方式定义您的订单:

  • For /F环形 (your,order,itens...Do Dir /OrderName/ON):

  • 命令行:
for %i in (mp4,mpg,mpeg,wmv,m4v,jpg,jpeg,png,gif,mp3,m4a)do 2>nul dir /on /a-d /b "%Userprofile%\pictures\*.%~i"
@echo off

set "_dir=%Userprofile%\Some\Target\Folder\"
set "_order=mp4,mpg,mpeg,wmv,m4v,jpg,jpeg,png,gif,mp3,m4a"

for %%i in (%_order%)do 2>nul dir /a-d /on /b "%_dir%*.%%~i"

对于变量中的每个项目“%_order%",命令do() 变成:

   Dir Displays a list of files andsubdirectories in a directory.
    /A Displays files with specified attributes.
     - Prefix meaning not
     D Attributes   D  Directories

    /O List by files in sorted order.
     N Sortorder  N  By name (alphabetic)
    /B Uses bare format (no heading information or summary).

%_dir% Full\Path\To\Target\Folder e.g. "%Userprofile%\Media"
  %~i  The current eXtension (ending .string) in loop, e.g. mp4
*.%~i  All files with the eXtension from actual item in loop list by Order Name... 
> For %i in (mp4,mkv)do Dir /A-D /ON /B "%_dir%*.%~i"

is the same ::  Dir /A-D /ON /B "%Userprofile%\Media\*.mp4"
is the same ::  Dir /A-D /ON /B "%Userprofile%\Media\*.mkv"

Monza1.mp4
Roma5.mkv
  • 观察:使用2>nul仅为避免当任何扩展名/文件不存在/列表时输出错误

  • 另一个选择是....
for %i in (0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,y,w,z)do @dir /on /b "C:\Some\Folder\*.%~i????" 2>nul

for %i in (0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,gif,h,i,j,k,l,mp4,mpeg,mov,m4v,m4a,n,ogv,oga,opus,p,q,r,spx,s,t,u,v,x,y,wmv,z)do @dir /on /b "C:\Some\Folder\*.%~i????" 2>nul

其他资源:

相关内容