Пакетный файл: манипулирование filepath

Я пытаюсь создать небольшой скрипт для преобразования видео в окнах с помощью меню "Отправить". Для этого я хочу создать новое имя файла из входного. Но я не могу объединить строки.

Следуя синтаксису, найденному здесь, я написал этот фрагмент кода:

@echo Input:
@echo %1
set "outputfile=%1%.MP4"
@echo %outputfile%

Но у меня есть проблема с кавычками в выходном файле:

Input:
"D:\this is a test\MVI_7754.AVI"

D:\this is a test>set "outputfile="D:\this is a test\MVI_7754.AVI".MP4"
"D:\this is a test\MVI_7754.AVI".MP4

Я ожидаю, что расширение внутри кавычек не снаружи!

Может кто-нибудь сказать мне, как я могу объединить имя файла и расширение? Спасибо!

1 ответ

Решение
@echo Input:
@echo %1
set outputfile="%~1.MP4"
@echo %outputfile%

удалить предыдущее использование расширения

set outputfile="%~n1.MP4"

если вы не используете пути или

set outputfile="%~dpn1.MP4"

(имя будет преобразовано в полный путь)

Другие вопросы по тегам