Batch file 如何通过批处理脚本根据文件夹名称重命名文件

Batch file 如何通过批处理脚本根据文件夹名称重命名文件,batch-file,batch-processing,dos,batch-rename,Batch File,Batch Processing,Dos,Batch Rename,我有批处理脚本的这一部分,它正在执行以下操作: -有一个主文件夹,主文件夹中有两个文件(电影和字幕文件)和一个子文件夹“字幕” -此脚本获取电影文件的名称并用其重命名字幕文件+将字幕文件移动到“Subtitles”子文件夹中,然后重命名主文件夹。因此,最后我们有一个电影名称,它被用于字幕文件和主文件夹中。 @echo off setlocal EnableDelayedExpansion cd /D "%~DP0" echo BASE FOLDER: %cd% set n=0 for /D


我有批处理脚本的这一部分,它正在执行以下操作:
-有一个主文件夹,主文件夹中有两个文件(电影和字幕文件)和一个子文件夹“字幕”

-此脚本获取电影文件的名称并用其重命名字幕文件+将字幕文件移动到“Subtitles”子文件夹中,然后重命名主文件夹。因此,最后我们有一个电影名称,它被用于字幕文件和主文件夹中。

@echo off
setlocal EnableDelayedExpansion


cd /D "%~DP0"
echo BASE FOLDER: %cd%
set n=0
for /D %%a in (*) do (
set /A n+=1
cd "%%a"
echo ==================================================================
echo Processing folder: %%a


for %%b in (*.avi *.mp4 *.mkv) do set movieName=%%~Nb
echo Movie name: !movieName!
for %%b in (*.srt *.sub) do (
   move "%%b" "Subtitles\!movieName!%%~Xb"
  echo File "%%b" moved and renamed to "Subtitles\!movieName!%%~Xb"
)


cd ..
ren "%%a" "!movieName!"
echo Folder "%%a" renamed to "!movieName!" 

)
echo ==================================================================
echo %n% FOLDERS PROCESSED
pause
!!!!!我需要的是以下内容:
-我需要将其设置为反之亦然,因此名称将取自主文件夹而不是电影文件,因此主文件夹的名称将用于电影和字幕文件

谢谢

)又是你。再次感谢你!它的工作,因为它应该工作!
@echo off
setlocal EnableDelayedExpansion


cd /D "%~DP0"
echo BASE FOLDER: %cd%
set n=0
for /D %%a in (*) do (
set /A n+=1
cd "%%a"
echo ==================================================================
echo Processing folder: %%a
set movieName=%%~a


for %%b in (*.avi *.mp4 *.mkv) do (
   ren "%%~b" "!movieName!%%~Xb"
   echo Movie file "%%b" renamed to "!movieName!%%~Xb"
)

for %%b in (*.srt *.sub) do (
   move "%%~b" "Subtitles\!movieName!%%~Xb"
   echo File "%%b" moved and renamed to "Subtitles\!movieName!%%~Xb"
)


cd ..

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