所以我有一个文件夹,其中有几个子文件夹包含照片和视频(主要但不完全是,.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
其他资源:
-
|
,<
,>
,2>
, ETC。