Batch file 使用后缀+重命名多个文件夹中的多个图像文件,创建将在其中移动文件的文件夹

Batch file 使用后缀+重命名多个文件夹中的多个图像文件,创建将在其中移动文件的文件夹,batch-file,executable,dos,batch-rename,Batch File,Executable,Dos,Batch Rename,我想知道如何通过MSDOS或VBS创建脚本/批处理可执行文件,这将执行以下操作 我有一个名为“Movies”的文件夹,在这个文件夹中有几个子文件夹,其中包含“jpg、gif、png、srt、sub、avi、mp4、mkv”等文件 我需要的是: 0。除“jpg、gif、png、srt、sub、avi、mp4、mkv”之外的所有其他文件,以及完整或空目录,都必须移动到垃圾箱或删除 一,。然后我需要在每个子文件夹下创建一个名为“Subtitles”的新文件夹 二,。然后将每个子文件夹下的“jpg、gi

我想知道如何通过MSDOS或VBS创建脚本/批处理可执行文件,这将执行以下操作

我有一个名为“Movies”的文件夹,在这个文件夹中有几个子文件夹,其中包含“jpg、gif、png、srt、sub、avi、mp4、mkv”等文件

我需要的是:

0。除“jpg、gif、png、srt、sub、avi、mp4、mkv”之外的所有其他文件,以及完整或空目录,都必须移动到垃圾箱或删除

一,。然后我需要在每个子文件夹下创建一个名为“Subtitles”的新文件夹

二,。然后将每个子文件夹下的“jpg、gif、png”文件重命名为“海报1”、“海报2”、“海报3”等。。。分机号码不变

三,。然后我需要将“srt,sub”文件移动到创建的“Subtitles”文件夹中

四,。然后根据电影文件名重命名“srt,sub”文件以及包含电影文件的文件夹本身。电影文件可以有扩展名:“avi,mp4,mkv”

五,。此可执行文件必须从“Movies”文件夹运行,如果可能,还可以在屏幕上显示结果输出,以查看所做的操作

因此,文件夹“Movie”下基本上是文件夹“Pain 2011”,其中包含“Poster 1.jpg”、“Poster 2.jpg”、“Poster?.jpg”文件一个子文件夹,名为“Subtitles”,其中将包含“Pain 2011.srt”文件,至少文件夹本身的名称,并且字幕文件将以电影文件“Pain 2011.avi”命名。当然,所有其他文件将被移动到垃圾箱或删除

每一个想法都很受欢迎

谢谢大家!

起诉

输出:

按任意键继续。 文件monsieur_lazhar_.jpg重命名为Poster 1.jpg 文件monsieur_lazhar__ver2.jpg重命名为Poster 2.jpg 文件Poster 1.jpg重命名为Poster 3.jpg 按任意键继续


///文件夹中只有2个jpg文件,其中一个重命名了两次

谢谢,但请告诉我如何使用它?因为如果我用这个脚本创建一个*.bat文件,它将一事无成:我不是那么熟练的人,对不起:Sue@user1868774: 5. 此可执行文件必须从“Movies”文件夹运行,即:打开DOS窗口,使用cd\Movies或类似命令选择文件夹,然后执行批处理文件!我强烈建议您在批处理文件中的del、md、ren和move命令之前插入ECHO命令,以便仅显示它们。如果测试后一切正常,您可以删除ECHOs以真正执行命令。不幸的是,它对我不起作用。我没有把所有提到的文件“jpg.gif.png.srt.sub.avi.mp4.mkv”都放在主文件夹“Movies”下的每个文件夹中,这会有问题吗?因为在主文件夹“Movies”中有所有这些类型的文件以及更多的文件,但是只有这些文件应该保留,其余的应该被移到垃圾箱或删除。所以并不是所有这些文件都在“Movies”文件夹下的每个文件夹中。例如,在一个子文件夹中有一个“mkv,jpg”文件和一个“txt”,在第二个子文件夹中有一个“avi,png”文件和一个“nfo”。等等所以“txt,nfo”应该被删除。当然,在创建新文件夹“subtitles”之前,这些子文件夹中可以有或多或少不同的文件,也可以有其他子文件夹,它们也应该被删除。如果脚本已经过测试并且对您有效,请像一个傻瓜一样向我解释应该做什么:,因为仅仅将“test.bat”文件放入“Movies”文件夹并运行它是不够的,因为那里没有发生任何事情,只需打开“cmd窗口”一秒钟即可:/非常感谢Aacini!Sue@user1868774:请注意,从“Movies”文件夹运行批处理文件与双击它不同!我修改了批处理文件,使其在双击时正确运行;我以为这就是你做的你没有指出。。。。请:1-再次复制上面的批处理文件。2-插入电影文件夹的真实路径!3-双击它。如果屏幕中的命令跟踪不是您想要的:复制屏幕内容右键单击标题栏->编辑->标记->选择所需文本,然后按Enter键并将其粘贴为问题中的编辑,并解释其错误。。。
@echo off
setlocal EnableDelayedExpansion

set wantedExt=.jpg.gif.png.srt.sub.avi.mp4.mkv

rem I have one folder called 'Movies'
rem This executable file has to be run from the 'Movies' folder
cd /D "%~DP0"
echo BASE FOLDER: %cd%
rem in this folder are several sub-folders with files
set n=0
for /D %%a in (*) do (
   set /A n+=1
   cd "%%a"
   echo ==================================================================
   echo Processing folder: %%a

   rem 0.) Every other file except of 'jpg,gif,png,srt,sub,avi,mp4,mkv' must be moved to trash or deleted.
   for %%b in (*.*) do (
      if "!wantedExt:%%~Xb=!" equ "%wantedExt%" ECHO del "%%b" & echo File deleted: %%b
   )

   rem 0.5.) delete all folders before the 'Subtitles' folder is created
   for /D %%b in (*) do rd /S /Q "%%b"

   rem 1.) Then I need to create under every sub-folder a new folder called 'Subtitles'.
   ECHO md Subtitles
   echo Subtitles folder created

   rem 2.) Then to rename under every sub-folder 'jpg,gif,png' file to 'Poster 1', 'Poster 2', 'Poster 3' and so on... (no change on extension).
   set i=0
   for %%b in (*.jpg *.gif *.png) do (
      set /A i+=1
      ECHO ren "%%b" "Poster !i!%%~Xb"
      echo File "%%b" renamed to "Poster !i!%%~Xb"
   )
   rem PATCH to fix a bug in previous FOR command:
   if !i! neq 0 if not exist "Poster 1.*" (
      ren "Poster !i!.*" "Poster 1.*"
      echo ...and renamed back to "Poster 1"
   )

   rem 3.) Then I need to move the 'srt,sub' file in to the created 'Subtitles' folder.
   rem 4.) ... (to rename the 'srt,sub' file ... according the movie file name)
   rem The movie file can have extension: 'avi,mp4,mkv'.
   for %%b in (*.avi *.mp4 *.mkv) do set movieName=%%~Nb
   echo Movie name: !movieName!
   for %%b in (*.srt *.sub) do (
      ECHO move "%%b" "Subtitles\!movieName!%%~Xb"
      echo File "%%b" moved and renamed to "Subtitles\!movieName!%%~Xb"
   )

   rem 4.) ... (to rename the folder itself which contains the movie file, according the movie file name)
   cd ..
   ECHO ren "%%a" "!movieName!"
   echo Folder "%%a" renamed to "!movieName!"

)
echo ==================================================================
echo %n% FOLDERS PROCESSED
pause