Как извлечь расширение входного параметра файла с помощью пакетного скрипта Windows

Учитывая этот пакетный скрипт - как мне выделить имя файла и расширение, как в приведенном выводе:

@echo off
REM usage split.bat <filename>
set input_file="%1"
echo input file name is <filename> and extension is <extension>

c:\split.bat testfile.txt
input filename is testfile and extension is txt

То есть - какой правильный синтаксис для <filename> and <extension> в этом коде?

1 ответ

Решение

Как изолировать имя файла и расширение от %1?

Используйте следующий пакетный файл (split.bat):

@echo off 
setlocal
REM usage split.bat <filename>
set _filename=%~n1
set _extension=%~x1
echo input file name is ^<%_filename%^> and extension is ^<%_extension%^>
endlocal  

Заметки:

  • %~n1 - развернуть %1 Имя файла без расширения файла.

  • %~x1 - развернуть %1 к файлу eXtension только.

  • < а также > являются специальными символами ( перенаправление) и должны быть экранированы с помощью ^,

Пример использования:

> split testfile.txt
input file name is <testfile> and extension is <.txt>

Дальнейшее чтение

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