我有一个名为“ Movies”的文件夹,其中有几个子文件夹,每个子文件夹都有电影的标题和名称的描述,例如:“ Blue Velvet(1986)-The Criterion Collection”。
每个电影子文件夹中都有许多文件,通常是视频文件(扩展名为.mkv,.mp4,.avi,.wmv等),字幕文件(扩展名为.srt),有时还包括.jpg图像。这些文件具有电影标题的替代格式作为名称,与它们放入的文件夹名称不同,例如“ Blue Velvet-David Lynch(1986)”。
我想要实现的是:
1。在每个电影子文件夹内创建一个文本文件。文本文件应与所讨论的子文件夹具有完全相同的名称。
然后(我不介意顺序,但是我不确定这些步骤可以朝相反的方向执行)
2。重命名电影子文件夹,使其与视频具有相同的名称(当然,没有扩展名)。
或换一种说法,由于AFAIK在cmd和bat文件方面没有重命名文件夹之类的东西,而是在文件夹之间移动文件,我想创建一个以Movie子文件夹命名的文本文件,然后将其移入以视频文件名命名的新文件夹,以及初始文件夹中的所有其他文件。
所以
Movies/Blue Velvet (1986) - The Criterion Collection/
Blue Velvet - David Lynch (1986).mkv
Blue Velvet - David Lynch (1986).srt
Blue Velvet - David Lynch (1986).jpg
变成
Movies/Blue Velvet - David Lynch (1986)/
Blue Velvet - David Lynch (1986).mkv
Blue Velvet - David Lynch (1986).srt
Blue Velvet - David Lynch (1986).jpg
Blue Velvet (1986) - The Criterion Collection.txt
理想情况下,我希望通过选择文件夹来启动该过程并启动一只蝙蝠。通过上下文菜单操作或“发送”到bat文件来创建文件,我知道该怎么做,我只想获得bat文件中命令的帮助。这样,使用前面的示例,我只能处理“蓝色天鹅绒”和其他选定的电影子文件夹,而不必处理“电影”中的所有内容根文件夹,以防某些不需要排序,但如果不可能,则没问题。但是,文件夹和文件名中可以包含特殊字符/符号,数字和空格。我四处搜寻,找不到适合我的情况的答案,我想最棘手的部分是“重命名”子文件夹,这是仅对选定的电影子文件夹而不是“电影”中的每个子文件夹执行操作的一种方式“ 根文件夹。
任何帮助将不胜感激,非常感谢!
嗯,我想可能是这样的:
@echo off
Title Movie Folder Renamer
:Start
Rem Put the path to the movie folders here:
set MovieFolders=%CD%
cls
echo.
set /p Pattern=Please inform the pattern:
if /i "%Pattern%"=="*.*" set "Pattern=|Find /i ".""
pushd %MovieFolders%
echo.
Echo List of affected Folders:
echo.
dir /ad /b /p %Pattern%
echo.
echo What would you like to do? (C)ontinue ^| C(a)ncel ^| (N)ew Pattern
Choice /c "CAN"
if "%errorlevel%"=="2" Goto Exit
if "%errorlevel%"=="3" Goto Start
for /f "Delims=" %%a in ('dir /ad /b ^%Pattern%') do (
echo.> "%%a\%%~nxa.txt"
pushd "%%a"
for %%b in (*.mp4 *.mkv *.avi *.wmv *.asf *.mpg *.mpeg *.fla) do (
popd
ren "%%a" "%%~nb"
)
)
if exist "%~pd0\NoSrt.txt" del "%~pd0\NoSrt.txt"
for /d %%c in (%MovieFolders%\*) do if not exist "%%c\*.srt" echo %%~nc >> %~dp0NoSrt.txt
:Exit
前:
后:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句