多年来,我一直把所有的电影都放到一个文件夹中,以及所有他们的演员。 我已经意识到,现在经过几次挫折保留了nfo的备份,艺术将节省我几个小时的生活,并保持数据库更加可用,当添加一个新的科迪设置(电视,平板电脑,笔记本电脑等…)。 所以我试图批量创build一个基于电影文件名的文件夹,并将多个相关的文件移动到创build的文件夹。
要清楚,我想要制作电影的文件夹名称,并将所有相关文件放入该文件夹中。 电影文件名的格式可以改变,因为它们并不都具有相同的信息,即导演的剪辑,编辑,终极版本,这是在[]中。 主要的电影名称在任何情况下都是最小的文件名,我永远不会希望这个文件夹被命名为文件名中包含“[Extra]”的文件。 一般来说格式是“电影(年)[额外信息] … [额外信息]小描述在这里”为非电影video。
我想到的最好的是:
for %%i in (*) do md "%%~ni" && move "%%~i" "%%~ni"
现在的问题是我为每个文件创build一个文件夹,并将所有的文件移动到各自的文件夹,但相关的内容现在在不同的文件夹,具有完全相同的文件名的东西是留在主文件夹。
在“xxx”文件夹中查找包含“yyy”string的文件,并使用批处理脚本将这些文件复制到“zzz”文件夹
在特定驱动器的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文件夹并将这些文件移动到该文件夹中
https://superuser.com/questions/762113/cmd-command-to-create-folder-for-each-file-and-move-file-into-folder
批处理脚本,将文件夹中的每个文件移动到文件夹后面的文件夹中?
批量命令检查部分文件名然后移动
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] 举报,一经查实,本站将立刻删除。