Замените file.old на file.new в нескольких подпапках - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь заменить более 400 аудиофайлов, примерно столько же вложенных папок, на обновленный формат, требуемый программой.Это один и тот же файл в каждой локации, но так, как они требуют его для своего XML-файла.Я нашел несколько похожих постов, заменяя файлы в нескольких подкаталогах, как этот Замена файла в нескольких папках / подкаталогах это, как я предполагал, будет соответствовать моим потребностям.

Я хочу найти все AR33Файлы .mp3 в папках SFX'x и замените их новым требуемым AR33.Мой вопрос заключается в следующем:

FOR /R C:\Users\trevo\Desktop\ProjectGoldenEYE\811converted\GoldenEye\SFX %%I IN (AR33.mp3) DO echo COPY /Y C:\Users\trevo\Desktop\ProjectGoldenEYE\811converted\sfxwems\AR33.wem %%~fI 

Это делает обратное и копирует файл, который я хочу перезаписать, ar33.mp3,по всей структуре папок в каждой папке, где их не должно быть.но он говорит, 1 файл копируется после каждой записи.

(AR33) создает копии без расширения.добавление (* AR33.mp3) ничего не делает, то же самое с (* AR33.mp3 *) ничего не делает, даже если в консоли указано «1 скопированный элемент».На данный момент я пытаюсь сделать все возможное, чтобы это работало случайным образом.Изменение COPY для замены дает неверный переключатель - / y.Я использую неправильный «скрипт», чтобы делать то, что я хочу?Потому что даже при изменении одного из AR33.mp3 на .wem никаких изменений не произошло после замены строки .mp3 на .wem.Я предполагаю, что мне нужно исправить то, что он ищет и что копирует.

Обновлен bat:

FOR /R "C:\Users\trevo\Desktop\ProjectGoldenEYE\811converted\GoldenEye\SFX\" %%I IN (AR33.mp3) DO echo COPY /Y "C:\Users\trevo\Desktop\ProjectGoldenEYE\811converted\sfxwems\AR33.wem" "%%~fI"

Пример вывода:

C:\Users\trevo\Desktop\ProjectGoldenEYE\811converted>echo COPY /Y "C:\Users\trevo\Desktop\ProjectGoldenEYE\811converted\sfxwems\AR33.wem" "C:\Users\trevo\Desktop\ProjectGoldenEYE\811converted\GoldenEye\SFX\AAC0\ShipName__PASC045\isPlayer__False\AR33.mp3"
COPY /Y "C:\Users\trevo\Desktop\ProjectGoldenEYE\811converted\sfxwems\AR33.wem" "C:\Users\trevo\Desktop\ProjectGoldenEYE\811converted\GoldenEye\SFX\AAC0\ShipName__PASC045\isPlayer__False\AR33.mp3"

1 Ответ

0 голосов
/ 12 марта 2019

Вы также хотите заменить .mp3 на .wem.Сейчас вы просто копируете файл .wem и называете его с расширением .mp3.Таким образом, мы могли бы просто переименовать .mp3, а затем скопировать в него файл .wem .:

@echo off
for /R "C:\Users\trevo\Desktop\ProjectGoldenEYE\811converted\GoldenEye\SFX\" %%I in (*AR33.mp3) do (
    echo ren "%%~fI" "%%~nI.wem"
    echo copy /Y "C:\Users\trevo\Desktop\ProjectGoldenEYE\811converted\sfxwems\AR33.wem" "%%~dpnI.wem"
)

Пожалуйста, перед продолжением сделайте примечание .Выше приведен только результат, если вы довольны тем, что он делает то, что вам нужно, а затем только удалите `echo из обеих строк в блоке кода.

Также всегда полезно сделать резервную копию файлов перед запускомбольшой copy процесс, подобный этому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...