-1

Это может выглядеть как двойной вопрос, но это не так. Моя проблема немного другая. На самом деле, у меня была папка с множеством файлов mp4, и я хотел суффиксить каждое из имен файлов с помощью GOOD. Увидев ответы на предыдущий вопрос, я кое-что сделал и в итоге получил суффикс .mp4good. Таким образом, файл a.mp4 изначально стал a.mp4good.mp4 вместо aGOOD.mp4 (что я на самом деле хотел). К счастью, все эти файлы работают, но имена не те, которые я хотел. Я прошу помощи, как получить то, что я хочу с этого момента. Я использовал команду переименования в DOS из папки, содержащей эти файлы.

1 ответ1

1

Как вы обнаружили, синтаксис, который вы использовали для добавления суффикса к базовому имени, был неверным. Объяснение, почему можно найти в разделе Как команда Windows RENAME интерпретирует подстановочные знаки? , Эта ссылка также имеет правильный синтаксис для добавления к базовому имени:

ren *.mp4 ??????????????????GOOD.*

Там должно быть достаточно ? соответствовать длине самого длинного базового имени.

Обратите внимание, что если у вас есть несколько начальных имен в форме a.b.mp4 , то приведенное выше приведет к aGOOD.b.mp4 . Если вы хотите a.bGOOD.mp4 , то вам нужно больше, чем простая команда REN. Вы могли бы использовать

for %F in (*.mp4) do @ren "%F" "%~nFGOOD.mp4"

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

@echo off
for %%F in (*.mp4) do ren "%%F" "%%~nFGOOD.mp4"

В настоящее время у вас есть имена в форме a.mp4GOOD.mp4 , и вы хотите aGOOD.mp4 .

Решение:

ren *.mp4GOOD.mp4 ??????????????????GOOD.mp4

Если у некоторых имен больше двух точек, вам снова понадобится больше, чем простая команда REN.

for %A in (*.mp4GOOD.mp4) do @for %B in ("%~nA") do @ren "%B" "%~nBGOOD.mp4

Не забудьте удвоить проценты, если вы поместите команду в пакетный скрипт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .