Как написать bat-файл, который переименовывает только часть имени файла?
Всем привет! Прошу помочь с одной проблемой, которую не могу решить в силу малых навыков работы с bat-файлами.
Есть несколько файлов:
setup.exe
setup-1.bin
setup-2.bin
Нужно написать скрипт, который перенесет эти файлы в другую папку и даст им такие имена:
setup_ver2.exe
setup_ver2-1.bin
setup_ver2-2.bin
То есть мы после "setup" дописываем "_ver2", расширение файлов остается то же.
Есть такой скрипт:
@echo off
for %%a in (c:\temp\setup*.*) do (
move "%%~a" "<путь к нужной папке>\%%~na_ver2%%~xa"
)
но он формирует вот такой набор файлов: setup_ver2.exe, setup-1_ver2.bin, setup-2_ver2.bin, что мне не подходит.
@echo off
SetLocal EnableDelayedExpansion
for %%a in (c:\temp\setup*.*) do (
set "namesuffix=%%~na"
set "namesuffix=!namesuffix:setup=!"
move "%%~a" "<путь к нужной папке>\setup_ver2!namesuffix!%%~xa"
)
Kristian@DESKTOP-JPJ1LU9 d:\test_setup
# (
set "namesuffix=setup"
set "namesuffix=!namesuffix:setup=!"
move "d:\test_setup\setup.exe" "
)
Синтаксическая ошибка в имени файла, имени папки или метке тома.
kristian_bells, В вашем коде нет второго параметра команды move.
Вообще для отладки, закоментируйте первую строку скрипта, тогда на экран будут выводиться все выполняемые команды и будет ясно в какой из них произошла ошибка. С ней и разбирайтесь.