Я пытаюсь переименовать все файлы в папке с помощью пакетного сценария, но получаю неправильную синтаксическую ошибку, которую, похоже, не могу определить:
for %%f in (%Source%\*DebugLog.Config) do %%f ren %%f "%Source%\%ProjectName%.*DebugLog.Config"
Идея заключается в том, что я добавляю префикс к любому файлу, который заканчивается в DebugLog.Config, так что он становится "projectName.DebugLog.Config"
Где это идет не так?
windows
batch
batch-file
BatFileNewbie
источник
источник
Ответы:
Я получаю неправильную синтаксическую ошибку, которую не могу определить
В вашем командном файле есть несколько ошибок (2 из которых я сделал сам).
Как указал мне в комментариях в другом месте по dbenham :
Посмотрите его ответ, добавьте «текст» в конец нескольких имен файлов для более подробного объяснения выше.
К тому же
do %%f
бессмысленно, должно быть простоdo
.Вот рабочий пакетный файл:
Дальнейшее чтение
источник
Это идет не так в более чем одном месте. Предполагая,
%Source%
заканчивается обратным слешем (правка: кажется, что нет, поэтому добавление обратного слеша :)Цель ren не должна содержать путь, поэтому
%%~nxf
извлекает Name и Extention of%%f
.источник