Я получаю неправильную синтаксическую ошибку, которую не могу определить
for %%f in (%Source%\*DebugLog.Config) do %%f ren %%f "%Source%\%ProjectName%.*DebugLog.Config".
В вашем командном файле есть несколько ошибок (2 из которых я сделал сам).
Как указал мне в комментариях в другом месте по dbenham :
Цель REN не может включать диск или путь. Это должно быть только имя и расширение
Использование простого FOR рискует переименовать файл более одного раза - не хорошо :-( Лучше использовать FOR / F с DIR / B
Посмотрите его ответ, добавьте «текст» в конец нескольких имен файлов для более подробного объяснения выше.
К тому же do %%f
бессмысленно, должно быть просто do
.
Вот рабочий пакетный файл:
@echo off
pushd %source%
for /f "delims= eol=:" %%f in ('dir /b /a-d *DebugLog.Config') do ren "%%f" "%ProjectName%.%%f"
popd
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- dir - Показать список файлов и подпапок.
- for / f - Циклическая команда против результатов другой команды.
- popd - изменить каталог обратно на путь / папку, которая была сохранена последней командой PUSHD.
- pushd - изменить текущий каталог / папку и сохранить предыдущую папку / путь для использования командой POPD.
- ren - переименовать файл или файлы.