Как извлечь расширение входного параметра файла с помощью пакетного скрипта 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>
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- параметры - аргумент командной строки (или параметр) - это любое значение, переданное в пакетный скрипт.
- перенаправление - операторы перенаправления.
- синтаксис - Escape-символы, разделители и кавычки.