2013-11-10 2 views
2

Извините, если на это был дан ответ, поиск дает нечто похожее, но не совсем то, что мне нужно.Пакетный файл для переименования изображений для WD Live TV

Я использую XBMC и Western Digital TV Live в качестве медиацентров. XBMC использует folder.jpg для художественного фильма. Однако WD использует как folder.jpg, так и moviename.jpg.

Моя структура папок выглядит следующим образом:

Films\movie1\movie1.mkv(or avi etc...) 
Films\movie1\folder.jpg 
Films\movie2\movie2.mkv (etc...) 
Films\movie2\folder.jpg 

То, что я после того, как это .bat файл, который будет сканировать каталог целые фильмы, копировать folder.jpg и переименовать новый JPG, используя имя папки что folder.jpg находится. Оригинал folder.jpg должен оставаться.

По существу из:

Films\movie1\folder.jpg 

To:

Films\movie1\folder.jpg 

и

Films\movie1\movie1.jpg 

Это должно произойти в каждой папке в Films.

Я уверен, что это должно быть возможно, но, честно говоря, мои знания в файлах .bat очень ограничены.

+0

Итак, вы хотите * скопировать * 'folder.jpg', а не переименовать его, не так ли? –

ответ

1

Вы можете использовать FOR /D цикл для перебора подкаталогов Films:

@ECHO OFF 
FOR /D %%I IN ("D:\Path\to\Films\*") DO (
    COPY "%%I\folder.jpg" "%%I\%%~nxI.jpg" 
) 

В цикле, полный путь Поддиректории является ссылочным, как %%I и только его имя, как %%~nxI (может быть только %%~nI если имя никогда не включает .).

Вы можете запустить цикл непосредственно из командной строки, но вы должны заменить двойные % символы с одной %:

FOR /D %I IN ("D:\Path\to\Films\*") DO COPY "%I\folder.jpg" "%I\%~nxI.jpg" 

Обратите внимание также, что если moviename.jpg уже существует, команда COPY остановится для подтверждения перезаписывания файла. Если вы просто хотите, чтобы переписать его в любом случае без ручного подтверждения, добавьте переключатель /Y:

COPY /Y ... 
+0

Спасибо, это делает именно то, что я хотел. – user2078506

0
for /d %%a in (*) do if exist "%%~a\folder.jpg" echo copy /b "%%~a\folder.jpg" "%%~a\%%~na.jpg" 

Снимите echo, чтобы заставить его работать.

Смежные вопросы