У меня есть папка, которая содержит
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\VIDS - -.mp4
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\VIDS - -.json
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\VIDS - -.aaf
Я хочу, чтобы файлы были переименованы в соответствии с папкой, в которой они находятся.
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\2020-04-08 14-09-07-VIDS.mp4
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\2020-04-08 14-09-07-VIDS.json
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\2020-04-08 14-09-07-VIDS.aaf
Я получаю следующее
P:\RECORDINGS\2020-04-08 16-01-12 - TEST - ->(
Echo Ren: ".\2020-04-08 16-01-12 - TEST - -\TEST - -.m4a" "2020-04-08 16-01-12 - TEST - -.m4a"
Ren "TEST - -.m4a" "2020-04-08 16-01-12 - TEST - -.m4a"
У меня есть этот код, однако он, кажется, не добавляет имя, тем более заменяет его.
@echo on
Setlocal enabledelayedexpansion
FOR /D /R %%# in (*) DO (
PUSHD "%%#"
FOR %%@ in ("*") DO (
Echo Ren: ".\%%~n#\%%@" "%%~n#%%~x@"
Ren "%%@" "%%~n#%%~x@"
)
POPD
)
Код выше: нажмите здесь (шкаф, который я мог найти)
Обновление
@echo off
Setlocal enabledelayedexpansion
rem - keeps the first 19 chas of the folder names
for /F "delims=" %%D in ('dir /B /A:D "*"') do (
set "FOLDER=%%D"
setlocal EnableDelayedExpansion
ren "!FOLDER!" "!FOLDER:~,19!"
endlocal
)
for /r %%a in (*.*) do for %%b in ("%%~dpa\.") do echo ren "%%~a" "%%~nxb____%%~xa"
Хорошо. Итак, я очистил папки сейчас. "%%~nxb____%%~xa"
Мне нужно указать здесь имя файла, однако я не уверен, как получить информацию. Я смотрю на %%f
. Однако я не уверен, как добавить его в приведенный выше код. Не я немного растерялся.