微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

批量基于文件名创build文件夹,并将多个相关文件移动到创build的文件夹

多年来,我一直把所有的电影都放到一个文件夹中,以及所有他们的演员。 我已经意识到,现在经过几次挫折保留了nfo的备份,艺术将节省我几个小时的生活,并保持数据库更加可用,当添加一个新的科迪设置(电视,平板电脑,笔记本电脑等…)。 所以我试图批量创build一个基于电影文件名的文件夹,并将多个相关的文件移动到创build的文件夹。

要清楚,我想要制作电影的文件名称,并将所有相关文件放入该文件夹中。 电影文件名的格式可以改变,因为它们并不都具有相同的信息,即导演的剪辑,编辑,终极版本,这是在[]中。 主要的电影名称在任何情况下都是最小的文件名,我永远不会希望这个文件夹被命名为文件名中包含“[Extra]”的文件。 一般来说格式是“电影(年)[额外信息] … [额外信息]小描述在这里”为非电影video。

我想到的最好的是:

for %%i in (*) do md "%%~ni" && move "%%~i" "%%~ni"

现在的问题是我为每个文件创build一个文件夹,并将所有的文件移动到各自的文件夹,但相关的内容现在在不同的文件夹,具有完全相同的文件名的东西是留在主文件夹。

在“xxx”文件夹中查找包含“yyy”string的文件,并使用批处理脚本将这些文件复制到“zzz”文件

为BATCH文件自动创build菜单

在特定驱动器的Windows中的磁盘大小

如何在执行DIR或FOR命令时忽略8.3名称

从.NET执行批处理脚本(意外输出

我试图完成的一个例子:

'71 [额外] sup stuff.mp4

'71 .MKV

3 Geezers! (2013)-fanart.jpg

3 Geezers! (2013)-poster.jpg

3 Geezers! (2013)。MP4

3 Geezers! (2013)的.nfo

3女性(1977)-fanart.jpg

3女性(1977)-poster.jpg

三女(1977).mp4

3女性(1977).nfo

12年奴隶(2013).mp4

13(2010).mp4

你的一个案例(2013).avi

单杆(2013).mp4

Abre Los Ojos(1997)[Open Your Eyes] [SPA] [Extra] Test.mp4

Abre Los Ojos(1997)[Open Your Eyes] [SPA] .avi

Abre Los Ojos(1997)[Open Your Eyes] [SPA] .srt

GBF(2013).mp4

GI Joe报复(2013).mkv

GI Joe报复(2013).srt

Test Movie(1977)[Comm] .mp4

至:

'71 '71 [Extra] sup stuff.mp4

'71 '71 .MKV

3 Geezers! (2013) 3 Geezers! (2013)-fanart.jpg

3 Geezers! (2013) 3 Geezers! (2013)-poster.jpg

3 Geezers! (2013) 3 Geezers! (2013)。MP4

3 Geezers! (2013) 3 Geezers! (2013)的.nfo

3女性(1977) 3女性(1977)-fanart.jpg

3女性(1977) 3女性(1977)-poster.jpg

3女(1977)3女(1977).mp4

3女性(1977)3女性(1977).nfo

12年奴隶(2013) 12年奴隶(2013).mp4

13(2010) 13(2010).mp4

你的一个案例(2013)你的案例(2013).avi

单杆(2013)单杆(2013).mp4

Abre Los Ojos(1997)[Open Your Eyes] [SPA] Abre Los Ojos(1997)[Open Your Eyes] [SPA] [Extra] Test.mp4

Abre Los Ojos(1997)[Open Your Eyes] [SPA] Abre Los Ojos(1997)[Open Your Eyes] [SPA] .avi

Abre Los Ojos(1997)[Open Your Eyes] [SPA] Abre Los Ojos(1997)[Open Your Eyes] [SPA] .srt

GBF(2013) GBF(2013).mp4

GI乔报复(2013) GI乔报复(2013).mkv

GI Joe报复(2013) GI乔报复(2013).srt

Test Movie(1977)[Comm] Test Movie(1977)[Comm] .mp4

任何人都可以帮我用这个批处理代码? 不是所有的文件名称是电影(年)[通讯] …,有些只是电影,或电影[通讯]。

总结:我想创build一个基于电影的文件夹,也就是任何具有特定video扩展名的文件,如mp4,mkv,avi等…也不包含:[Extra]; 然后将所有关联的文件移动到该文件夹​​。

我已经通过这些来源:

批量创build基于部分文件名称文件夹并将文件移动到该文件夹​​中

文件名部分批量创build文件夹并移动

批量基于一系列文件创build文件夹并移至子目录

批处理脚本根据文件名创build文件

根据文件名创build文件夹并将这些文件移动到该文件夹​​中

https://superuser.com/questions/762113/cmd-command-to-create-folder-for-each-file-and-move-file-into-folder

批处理脚本,将文件夹中的每个文件移动到文件夹后面的文件夹中?

批处理命令将png文件移动到文件夹相同的名称文件文件

批量命令检查部分文件名然后移动

Windows CMD命令行的AZ索引: http : //ss64.com/nt/

复制未知目录中来自txt的最新文件

以编程方式从命令行打印多个副本

我制作了一个Windows bat脚本,用于从列表中归档旧文件。 任何关于代码语法的build议?

安装Rails gem时,rails.bat如何安装到bin目录?

如何将命令值分配给variables

虽然你的描述很充足,但是你忘了提供一些具体的细节; 例如:用“电影(年)”部分启动所有文件名? 如果是这样,那么这个批处理文件做你想要的:

编辑 :Ops,我误读了要求! 此版本正常工作:

@echo off setlocal set "basename=." for /F "tokens=1* delims=." %%a in ('dir /B /AD ^| sort /R') do ( set "filename=%%a" setlocal EnableDelayedExpansion for /F "delims=" %%c in ("!basename!") do if "!filename:%%c=!" equ "!filename!" ( set "basename=!filename!" md "!basename!" ) move "!filename!.%%b" "!basename!" for /F "delims=" %%c in ("!basename!") do ( endlocal set "basename=%%c ) )

这样做并不容易,因为你必须对文件名进行排序。 您可以使用dir指定排序顺序,但不会使用最短的名称。 例如foo.wmv在foo subtitles.srt后面是字母,因为空格在点之前。

所以作为一个解决方案,也许你可以有一个包含基本电影名称的“已知扩展名”列表,然后移动所有与它们共享基本名称文件。 下面的脚本就是这样做的。 它列出所有带有avi , mp4和mkv扩展名的文件,但也许你必须从nfo开始,这可能适用于许多电影。 该脚本使用这些文件文件名来制作目录并查找相关文件。 它似乎是做的伎俩,但请在使用它之前做一个备份。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐